我有一些类(窗口)没有复制构造函数(它是私有的)。我不明白如何初始化此类的VAR在我自己的类:初始变量没有复制构造函数
class MyClass
{
Window obj; // Hasn't copy constructor
public:
void init()
{
obj = Window(/* constructor params */); // [error]
obj(/* constructor params */); // [error]
}
}
错误1:initializing argument 1 of ‘Window::Window(WindowHandle, const sf::WindowSettings&)’
错误2:‘NonCopyable& NonCopyable::operator=(const NonCopyable&)’ is private
但它以这种方式工作:
Window obj(/* constructor params */);
是否有你的类使用'init()'成员函数而不是使用__constructor__的原因? – sbi 2010-05-29 13:21:48
@sbi,是的,有。不要asky为什么=) – Ockonal 2010-05-29 13:24:59
我重新说:你有使用'init()'成员的__good__原因吗? (一个很好的理由是,例如,如果初始化需要调用虚函数,那么需要两步构造。) – sbi 2010-05-29 22:34:32