Re[2]: размещение указателя на таблицу виртуальных ф-й
От: Перфилов  
Дата: 17.06.05 23:06
Оценка:
Здравствуйте, Павел Кузнецов, Вы писали:

ПК>Перфилов,


>> 1. Прописан ли в стандарте механизм реализации вызова виртуальных функций (в том числе и при множественном наследовании)?


ПК>Нет (*).


>> 2. Прописано ли в стандарте размещение указателя на таблицу виртуальных функций (в начале объекта, в конце, или еще где-нибудь)?


ПК>Нет (*).



Я себе вот какую проблему придумал по этому поводу.

Имеем две среды разработки под винду: A и B.
А размецает указатель на таблицу в начале объекта, а B — в конце.
Допустим в среде A я написал dll-ку. Вот h, который поставляется с ней:

// У Foo есть наследники, но пользователь dll о них не знает.
class Foo
{
    friend Foo* CreateFoo(int id);

    private:
    void* pData;

    protected:
    Foo();

    public:
    virtual ~Foo();

    virtual void SomeFunc();
};

Foo* CreateFoo(int id);



Теперь в среде B пытаюсь исп-ть эту dll-ку:
Foo* pFoo = CreateFoo(7);
pFoo->SomeFunc();               // Вот тут по идее должен быть глюк.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.