gpt4 book ai didi

c++ - 如何防止 object=constructor(); C++中的赋值

转载 作者:太空宇宙 更新时间:2023-11-04 14:36:17 25 4
gpt4 key购买 nike

这就是我想要做的:

class A{
public:
A(){/*need to initialize something here*/}
};

int main(){
A a; //OK
a=A(); //not OK
a=A(b); //not OK
///Only A a; needs to be allowed.
return 0;
}

我需要初始化一些东西,同时防止使用复制构造函数初始化对象,还要防止对现有对象进行赋值。

注意:如果我能在没有 >=C++11 的情况下做到这一点就好了。

最佳答案

从 C++11 开始,只需删除赋值运算符:

class A{
public:
A(){/*need to initialize something here*/}
A& operator =(const A&) = delete;
};

关于c++ - 如何防止 object=constructor(); C++中的赋值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34404044/

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