如何在派生类中实现类的基本函数:
1, 首先要在派生类中的构造函数中调用基类的构造函数
2, 基类与派生类的析构函数一定要为虚函数
class Base
{
public:
Base& operator=(const Base &base);
virtual ~Base() //申明为虚函数
{
cout<<"~Base"<<endl;
}
private:
int b_x, b_y, b_z;
};
class Derived: public Base
{
public:
Derived& operator=(const Derived &derived);
virtual ~Derived() //申明为虚函数
{
cout<<"~Derived"<<endl;
}
private:
int d_i, d_j, d_k;
};
Derived& Derived::operator=(const Derived &derived)
{
if (this == &derived)
{
return *this;
}
Base::operator=(derived); //调用基类的构造函数初始化基类成员变量
d_i = derived.d_i;
d_j = derived.d_j;
d_k = derived.d_k;
return *this;
}
int main(void)
{
Base *p = new Derived;
delete p;
return 0;
}
运行结果:
如果不申明为虚函数的话,那么就只能析构基类,不能析构派生类。