C++ 将参数传递给类外的基类构造函数
我想在派生类之外定义构造函数。如何实现这一点。如果我在类中定义构造函数,它就会工作 感谢您的帮助 下面是我的代码C++ 将参数传递给类外的基类构造函数,c++,constructor,C++,Constructor,我想在派生类之外定义构造函数。如何实现这一点。如果我在类中定义构造函数,它就会工作 感谢您的帮助 下面是我的代码 class Base { private: int var1; public: Base(); Base(int var1); ~Base(); void print() { cout<<"Base"<<endl;
class Base
{
private:
int var1;
public:
Base();
Base(int var1);
~Base();
void print()
{
cout<<"Base"<<endl;
}
};
class Derived:public Base
{
private:
int var2;
public:
Derived();
Derived(int var2,int var1):Base(var1);
~Derived();
void print()
{
cout<<"Derived"<<endl;
}
};
Base::Base()
{
cout<<"Constructing Base"<<endl;
}
Base::Base(int var1)
{
cout<<"Constructing Base with "<<var1<<endl;
}
Base::~Base()
{
cout<<"Destructing Base"<<endl;
}
Derived::Derived()
{
cout<<"Constructing Derived"<<endl;
}
Derived::Derived(int var2,int var1):Base(var1)
{
cout<<"Constructing Derived with "<<var2<<endl;
this->var2 = var2;
}
Derived::~Derived()
{
cout<<"Destructing Derived"<<endl;
}
int main()
{
Derived d = Derived(2,1);
d.print();
return 0;
}
调用基类构造函数是实现。因此,它不属于类声明。将构造函数声明为
Derived(int var2, int var1);
但是您的实现很好。在声明中,更改
Derived(intvar2,intvar1):Base(var1)代码>到派生(intvar2,intvar1)代码>。类声明之外的定义很好。
Derived(int var2, int var1);