I have a constant int variable in my base class, and I would like to initialize responding one in my derived class, with different value (taken as a parameter), is this poss
Simply call the appropriate Base
constructor in the Derived
's initialization list:
Derived(const int index, const std::string name) : Base(index), m_name(name) {}
You can call the base constructor like this:
class B1 {
int b;
public:
// inline constructor
B1(int i) : b(i) {}
};
class B2 {
int b;
protected:
B2() {}
// noninline constructor
B2(int i);
};
class D : public B1, public B2 {
int d1, d2;
public:
D(int i, int j) : B1(i+1), B2(), d1(i)
{
d2 = j;
}
};
Since c++11 your can even use constructors of the same class. The feature is called delegating constructors.
Derived(){}
Derived(const int index, const std::string name) : Derived() {}