У меня есть два класса, Abstract
и Base
. Abstract
является базой класса Base
.постоянная переменная в базовом классе
class Abstract
{
public:
virtual ~Abstract();
const int aID;
protected:
// Constructor is protected because this class is abstract.
Abstract(int xID) :
aID(xID){}
};
#define BASE_CLASS_ID 0x0001
class Base : public Abstract
{
public:
Base() :
Abstract(BASE_CLASS_ID){} // change the ID
};
Теперь для любого Derived
класса для этого базового класса, я хочу того же ID BASE_CLASS_ID
будет использоваться. Как я могу потребовать, чтобы все мои производные классы использовали это поведение?
Вы уже это сделали! –
btw, Derived будет вызывать Base :: Base(), но не Abstract :: Abstract() –
Можете ли вы мне объяснить, как? Я не думаю, что Derived автоматически вызывает конструктор Base, или делает это? – kir