gpt4 book ai didi

c++ - 如何使这个 C++ 对象不可复制?

转载 作者:IT老高 更新时间:2023-10-28 12:13:58 26 4
gpt4 key购买 nike

见标题。

我有:

class Foo {
private:
Foo();
public:
static Foo* create();
}

我需要从这里做什么才能使 Foo 不可复制?

谢谢!

最佳答案

class Foo {
private:
Foo();
Foo( const Foo& ); // 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

编辑:如果您有支持此功能的编译器,则为 C++11 版本:

class Foo {
private:
Foo();
public:
Foo( const Foo& ) = delete; // non construction-copyable
Foo& operator=( const Foo& ) = delete; // non copyable

static Foo* create();
}

注意删除的方法应该是公开的:https://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines#Rc-delete

关于c++ - 如何使这个 C++ 对象不可复制?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2173746/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com