я следующая ситуация, я объявил const
член суперкласса и теперь я хочу, чтобы инициализировать его в конструкторе одного из его подклассов используя список инициализатору.Как инициализировать переменную const-члена суперкласса в конструкторе подкласса в C++?
struct Shape {
public:
const Rect boundingRect; // the rect in which the shape is contained
};
struct Stain : Shape
{
public:
Stain(Rect boundingRect_) : boundingRect(boundingRect_) {}
};
Я не уверен, если это вообще возможно, если взять простой подход, показанный выше, компилятор жалуется следующее сообщение:
member initializer 'boundingRect' does not name a non-static data member or base class
This answer объясняет, почему это не возможно, чтобы инициализировать элемент переменные суперкласса в список инициаторов. Мне интересно, какая лучшая практика может быть для этой ситуации?