【发布时间】:2016-02-23 08:09:37
【问题描述】:
我正在使用一个类库,该类没有实现赋值运算符,并且复制构造函数被禁用。我可以像这样实例化一个名为 var 的 LibraryClass 的本地实例:
LibraryClass var(data, (char *)fileName, results);
但我想在我正在编写的类上创建一个LibraryClass 实例变量。然后我想在类构造函数中实例化它。像这样的:
class MyClass
{
LibraryClass var;
void MyClass();
}
MyClass::MyClass()
{
var = LibraryClass(data, (char *)fileName, results);
}
在这种情况下,我结束了
error: ‘LibraryClass& LibraryClass::operator=(const LibraryClass&)’ is private
LibraryClass& operator=(const LibraryClass& rOther); // no implementation
我已经尝试了所有我能想象到的方法来完成这项工作,但没有任何效果。我正在尝试做的事情甚至可能吗?我没有想法,因此非常感谢任何建议。
编辑
我实际上并没有在构造函数中实例化变量。它发生在一个单独的函数中。我只说构造函数是因为我错误地认为这只是一个简化的假设。我没有意识到初始化列表会解决这个问题。我要回答的主要问题是标题。
如何实例化没有复制构造函数或赋值运算符的类的实例变量?还是初始化列表是唯一的方法?
【问题讨论】:
-
重复的太多了,我一个都找不到……
-
我找不到任何重复项。也许您知道一些我不知道会导致重复的术语?
-
@juanchopanza 怎么样:stackoverflow.com/questions/926752/…
-
@LogicStuff 如果我知道“初始化列表的好处”是我可以创建一个没有复制构造函数或赋值运算符的类的实例变量,那我为什么会有发布了这个问题....?
-
正是这种态度让 SO 成为了一个如此美妙的社区。 “不要问你非常有用的新手问题。相反,找一本书,梳理每句话寻找答案。SO 仅适用于专家问题。”
标签: c++