C++中关于类的析构函数无法调用的问题

C++中关于类的析构函数无法调用的问题

代码如下:

#include <iostream>
using namespace std;
class A {//创建一个A类
public:
	A(int a) {
		cout << "A()..." << endl;
		m_a = a;
	}
	void printA() {
		cout << "m_a=" << m_a << endl;
	}
	~A() {//创建A的析构函数
		cout << "~A..." << endl;
	}
private:
	int m_a;
};
class B {//创建一个B类
public:
	B(A&a1,A&a2,int id) :a1(a1), a2(a2) {
		cout << "B()...." << endl;
		m_id = id;
	}
	void printB() {
		cout << "id=" << m_id << endl;
		a1.printA();
		a2.printA();
	}
	~B() {//创建B类的析构函数
		cout << "~b...." << endl;
	}
private:
	int m_id;
	A a1;
	A a2;
};
int main() {
	A a1(10), a2(100);
	B b(a1, a2, 1000);
	b.printB();
	system("pause");//暂停程序
	return 0;
}

我们知道析构函数在类结束时会自动调用,但当我们用system(“pause”)暂停程序时,析构函数还没有执行会被暂停,要想析构函数被调用应该去掉system(“pause”).

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值