在以下代码中,方法 receivePointer 接收一个内存地址并使共享指针 ptr 指向该内存:
class Test1 {
private:
//
//
//
// A bunch of member variables
//
//
//
public:
Test1(/*A bunch of variables*/) {
//
//
// Assigning all of the class variables
//
//
//
}
};
class Test2 {
private:
std::shared_ptr<Test1> ptr;
public:
Test2() {}
void receivePointer(Test1* p) {
std::shared_ptr<Test1> tmp(p);
ptr = tmp;
tmp.reset();
}
};
有没有办法更改 receivePointer 中的代码,使其不会创建临时共享指针?这样子看起来好难看。