Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/136.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 解除唯一性\u ptr的冗余会导致内存地址无限打印_C++_Pointers_Unique Ptr_Dereference - Fatal编程技术网

C++ 解除唯一性\u ptr的冗余会导致内存地址无限打印

C++ 解除唯一性\u ptr的冗余会导致内存地址无限打印,c++,pointers,unique-ptr,dereference,C++,Pointers,Unique Ptr,Dereference,以下代码导致“res”的内存地址无限打印。我试图取消对“res”变量的引用,这样它就可以打印m_val。你知道它为什么无限打印吗 class Resource { private: int m_val; public: Resource(int val) { m_val = val; } ~Resource() { } friend std::ostream& operator<<(std::ostream&

以下代码导致“res”的内存地址无限打印。我试图取消对“res”变量的引用,这样它就可以打印m_val。你知道它为什么无限打印吗

class Resource
{
private:
    int m_val;
public:
    Resource(int val) { 
        m_val = val;
    }
    ~Resource() { }

    friend std::ostream& operator<<(std::ostream& out, const Resource &res)
    {
        out << &res << ": " << res << "\n";
        return out;
    }
};

int main()
{
    std::unique_ptr<Resource> res(new Resource(5));

    if (res) {
        std::cout << "*res: " << *res; //trying to dereference
    }
    return 0;
} 
类资源
{
私人:
国际货币基金组织;
公众:
资源(int val){
m_val=val;
}
~Resource(){}

friend std::ostream&operator根据上述评论,完成以下工作:

out << &res << ": " << res.m_val << "\n";

<代码> >你的<代码> OHH,因为我使用它就像一个例程<代码> int fo(int x){返回fo(x);}……它自称为永久的。或者直到栈被耗尽。也许你的意思是“代码> OUT @ M.M谢谢,这样工作!普通的老的“MyVar”将在C++中工作……还没有得到C++的挂起。