使用私有复制构造函数获取对对象的引用
Taking a reference to an object with a private copy constructor
我有一个类T,它使用Boost进行线程处理,因此其成员具有私有复制构造函数。
我想通过引用将T传递给另一个类。然而,当我试着这样做的时候,无论我怎么努力,我都做不好。我可以通过传递指针来实现这一点,但不能传递引用。
传递一个不能复制的对象的引用的正确方法是什么?
OR:如果答案是"你不能通过ref,只能通过指针"。你能解释一下为什么会这样吗?refs不只是语法更温和的指针吗?(我想知道为什么在设计中有这种区别,如果在编译级别,指针和引用之间真的有任何区别。)
UPDATE:在删除这个之前,请注意:
-
我从一个使用Boost线程的类中得到这个,在那里,通过引用给了我私有复制构造函数错误,但通过指针没有
-
我的理解是100%有可能通过参考
使停止通过成为可能 并且Boost线程使用它
如果我的假设是错误的,我将接受任何能澄清我的错误的答案
传递引用的方法:
void foo(int& x)
{}
int main()
{
int y = 42;
foo(y);
}
与底层类型是否可复制无关,因为您没有复制它
深入研究后发现,问题不在于引用传递,而在于初始化列表:
... : mx(x) {};
我认为如果x
是通过引用传递的,那么mx(x)
将是对x的引用,但它不是,它是一个副本。
我认为应该将mx
声明为引用:int& mx
.
相关文章:
- 返回常量对象引用 (getter) 和仅返回字符串有什么区别?
- 我们可以有一个 setter 成员函数作为从 const 对象引用的 const 吗?
- C++对象引用返回不同的值
- 对象引用中的字段以不同的方法返回不同的值
- 通过向构造函数其他对象引用页面来创建对象
- 为什么在对象引用恒定时允许更改为另一个类的指针的成员变量
- 如何在C++中读取 HDF5 对象引用
- C++ 未定义的对象引用
- 从函数返回 libconfig 类设置对象引用
- qt vsaddin错误对象引用未设置为对象的istanse
- 在这种情况下,为什么使用 *此必需的对象引用返回对象引用
- 基本C - 构造contaning对象引用,并将其作为方法参数传递
- C :将对象引用作为参数给出错误:呼叫class :: function()的匹配函数
- C++OOP基础知识-是否正确返回对象引用
- 使用对象引用(可能)在调用destructor后使用对象引用
- 创建返回对象引用的成员函数的最简单方法
- 如何在C++上使用对象引用删除对象
- JNI/Android NDK-维护全局对象引用
- 为什么有些类方法返回"*this"(self的对象引用)?
- 在C++中返回伪对象引用的规则