Я знаю, что один из способов инициировать членов класса - написать следующее:
class base {
int id;
public:
base(int id): id(id){}
};
Но что, если я смешаю этот синтаксис с constructor initialization of a derived class
:
class base {
int id;
public:
base(int id): id(id){}
};
class dri : public base {
int base;
public:
dri(int id): base(id){}
};
В приведенном выше примере для класса derived
относится ли base(id){}
к int base
или class base
?Я предполагаю, что это относится к int base
, так как «не компилируется».Как я могу сделать это, ссылаясь на class base
?
Редактировать:
Второй вопрос, допустим, вы смотрите на случайный код C ++, который выглядит так:
class base {
int id;
public:
base(int id): id(id){}
};
Как вы можете узнать, id(id){}
инициализирует локальную переменную или инициализирует конструктор другого класса?