Привет!
Наткнулся на проблему которую не могу решить.
Есть класс Class2Enh. При его инициализации надо сначала инциализировать свойство acltual_cl, а потом с объектом actual_cl вызвать конструктор базового класса. Если я пытаюсь сделать так:
#include<stdio.h>
class Class1
{
protected:
int some_property;
public:
Class1() { some_property = 1;};
virtual int getSomeProperty() {return some_property;};
};
class Class2Base
{
protected:
Class1 &cl;
public:
// Class2Base(Class1 & cl_to_use): cl(cl_to_use) {printf("Class2Base constructor\n"); };
Class2Base(Class1 & cl_to_use): cl(cl_to_use) { printf("DEBUG2: class1's SomeProperty = %i\n", cl_to_use.getSomeProperty()); };
virtual void Debug() {printf("DEBUG: class1's SomeProperty = %i\n",cl.getSomeProperty());};
};
class Class2Enh: public Class2Base
{
protected:
Class1 actual_cl;
public:
Class2Enh(): actual_cl (), Class2Base(actual_cl) {};
};
int main()
{
Class2Enh tue;
tue.Debug();
}
То получаю Segmentation Fault в конструкторе Class2Base при попытке обратиться к еще не инициализированному экземпляру actual_cl.
Вот как бы так вызвать конструктор родительского класса так, чтобы параметр конструктора уже оказался инициализирован.