Указатель на поле класса, непонятки.
От: 0x7be СССР  
Дата: 29.07.08 10:35
Оценка: -1
Имеется следующий код:
class A
{
public:
  bool flag;
};

class B : public A
{
public:
  int data;
};

struct S
{
  B b;
};

A S::*p = &S::b; // Тут ошибка


Собственно, почему ошибка? Я пытаюсь получить указатель со статическим типом "поле типа А" и с динамическим типом "поле типа B" у одной и той же структуры, где B публично наследуется от А.
ИМХО, тут нарушается принцип подстановки. Никто не знает, почему так сделано? Классики как-то объясняют сий казус или это просто недосмотрели?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.