派生类中实现类的基本函数

本文介绍了如何在派生类中正确实现基类的基本函数,包括构造函数和析构函数的调用方式,以及如何重定义赋值运算符以确保基类成员被正确初始化。文中通过具体的C++代码示例解释了为何需要将析构函数声明为虚函数,以支持派生类的完全析构。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

如何在派生类中实现类的基本函数:

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;
}

运行结果:


如果不申明为虚函数的话,那么就只能析构基类,不能析构派生类。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值