0

在以下代码中,方法 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 中的代码,使其不会创建临时共享指针?这样子看起来好难看。

4

0 回答 0