编码原则-cpp

CPP

引用的对象必须比被引用的对象活的时间长


#include 
using namespace::std;
class B {
public:
	int a, b, c;
	B() {
		a = 1, b = 1, c = 1;
	}
	~B() {
		cout << "Release B" << endl;
	}
	
};
class A {
public:
	B* b;
	void add(B* b) {
		this->b = b;
	}
	~A() {
		b->a = 2, b->c = 3, b->b = 9;
		cout << "Release A" << endl;
	}

};
int main() {
	unique_ptr<A> a;
	B b;
	a->add(&b);
	cout << b.a << b.b << b.c << endl;
}

由于b的生命周期是a的子集,所以会报错。

你可能感兴趣的:(c++,算法,开发语言)