如何使这个C ++对象不可复制? [英] How do I make this C++ object non-copyable?
本文介绍了如何使这个C ++对象不可复制?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
查看标题。
我有:
class Foo {
private:
Foo();
public:
static Foo* create();
}
我需要做什么才能使Foo不可复制?
What need I do from here to make Foo un-copyable?
谢谢!
推荐答案
class Foo {
private:
Foo();
Foo( const Foo& other ); // non construction-copyable
Foo& operator=( const Foo& ); // non copyable
public:
static Foo* create();
}
如果您使用boost,您还可以继承noncopyable: http://www.boost.org/doc/libs/1_41_0/boost/noncopyable.hpp
If you're using boost, you can also inherit from noncopyable : http://www.boost.org/doc/libs/1_41_0/boost/noncopyable.hpp
编辑:C ++ 11版本,如果你有一个编译器支持此功能:
C++11 version if you have a compiler supporting this feature:
class Foo {
private:
Foo();
Foo( const Foo& other ) = delete; // non construction-copyable
Foo& operator=( const Foo& ) = delete; // non copyable
public:
static Foo* create();
}
这篇关于如何使这个C ++对象不可复制?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文