c++ 不要在构造函数中再次调用构造函数

【在构造函数函数中再次调用构造函数的危险】: 由于你再次调用的构造函数在原来的构造函数中是局部函数,所以再次调用的构造函数的所有的量可能都是局部变量,它在生命周期结束时,会面临被析构的危险,所以再次使用时就可能是垃圾值/

#include<iostream>
using namespace std;
//在构造函数上添加新的构造函数
	MyTest(int a, int b) {
		this->a = a;
		this->b = b;
		MyTest(a, b, 100);
	}
	~MyTest() {
		cout << "类的成员变量被析构" << endl;
	}
public:
	//  业务函数
	int getC() const{
		return c;
	}
	void setC(int val) {
		c = val;
	}

private:
	int a;
	int b;
	int c;
};

int main() {

	MyTest t1(1, 2);
	cout << t1.getC() << endl;
	system("pause");
}

上面的代码可以进行断点调试:

当被调用函数的生命周期结束后,其c值变化成垃圾值

 所以再次使用,结果就是垃圾值

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值