gpt4 book ai didi

c++ - 仅对 C++ 中的空私有(private)构造函数使用声明是否正确?

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:53:26 25 4
gpt4 key购买 nike

例如,这是正确的吗:

class C 
{
private:
C();
C(const & C other);
}

或者您应该提供定义:

class C 
{
private:
C() {};
C(const & C other) {};
}

?感谢当前的答案。让我们扩展这个问题——编译器是否会在其中一个示例中生成更好的代码?我可以想象为 ctor 提供主体会强制编译器在编译单元中包含一些(空)代码吗?自动生成的代码也是如此吗?

最佳答案

如果您不希望您的对象可复制,则无需提供实现。只需将复制 ctor 声明为私有(private)即可,无需任何实现。其他 ctors 也是如此,如果您不想让任何机构使用它们,只需将它们声明为私有(private)即可,无需任何实现。

关于c++ - 仅对 C++ 中的空私有(private)构造函数使用声明是否正确?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1728772/

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