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”).

猜你喜欢

转载自blog.csdn.net/a_hang_szz/article/details/88759121