Смещение указателя базового класса во время компиляции относительно производного классаC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Смещение указателя базового класса во время компиляции относительно производного класса

Сообщение Anonymous »

Код: Выделить всё

class Base1 {
int x;
};
class Base2 {
int y;
};
class Derive : public Base1, public Base2 {
public:
enum {
PTR_OFFSET = ((int) (Base2*)(Derive*)1) - 1,
};
};
Но компилятор ругается


ожидаемое константное выражение


Все знают, что значение выражения 4, кроме компилятора, что не так?
Как же тогда получить смещение во время компиляции?>

Подробнее здесь: https://stackoverflow.com/questions/190 ... rive-class
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»