sor*_*h-r 1 c++ design-patterns
我需要使用包含一些不可复制类的代码库.他们已将其赋值运算符和复制构造函数声明为私有.如何在我的课程中初始化这些类型的成员?例如:
class non_copyable; // defined somewhere.
// constructor receives a parameter of type `normal_class'
// my_class.hpp
class my_class {
public:
my_class();
virtual ~my_class();
private:
normal_class good_one;
non_copyable trouble;
};
my_class::my_class() :
good_one(normal_class(0,0)),
trouble(non_copyable(good_one)) { // ====> error
}
Run Code Online (Sandbox Code Playgroud)
目前我使用的指针non_copyable在my_class.
你在这里调用复制构造函数,因为你是trouble从一个临时non_copyable实例构建的:
trouble(non_copyable(good_one))
// ^^^ temporary non_copyable.
Run Code Online (Sandbox Code Playgroud)
试试这个:
trouble(good_one)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
782 次 |
| 最近记录: |