【发布时间】:2015-07-23 23:30:10
【问题描述】:
测试.h
#include <memory>
#include <string>
using namespace std;
class A
{
public:
A GetTitle();
private:
unique_ptr<A> title;
};
Test.cpp
#include <memory>
#include "Test.h"
A A::GetTitle()
{
return *this->title.get();
} // Error here
int main()
{
}
我收到以下错误:
C2280: 'std::unique_ptr>::unique_ptr(const std::unique_ptr<_ty>> &)' :试图 引用已删除的函数
我在这里做错了什么?是否归结为this->keyServer 的所有权?我如何只将值传回,以便我根本不允许函数的用户在不使用 setter 的情况下修改类内的值?
【问题讨论】:
-
用错误注释更新了 OP。我还没打电话呢。
-
投反对票的任何理由?我什至创建了一个全新的项目来隔离错误......并提供了所有代码。
-
你为什么选择
unique_ptr这里?它真的是一次只能存在一个副本的资源吗? -
好吧,我以为我只希望我的 A 类拥有这个标题,比如说(我知道它是由代码组成的)......我只是想让人们访问它但不能操作它...所以是的,我认为 unique_ptr 在这里很完美。
-
哦,我认为这是其他地方的问题!
标签: c++ c++11 unique-ptr