C++-delete关键词 发表于 2021-11-14 更新于 2023-05-16 分类于 Cpp 阅读次数: 阅读次数: Valine: 本文字数: 359 阅读时长 ≈ 1 分钟 显式禁用默认函数在传统 C++ 中,如果程序员没有提供,编译器会默认为对象生成默认构造函数、 复制构造、赋值算符以及析构函数。 这就引发了一些需求:无法精确控制默认函数的生成行为。 例如禁止类的拷贝时,必须将复制构造函数与赋值算符声明为 private。 尝试使用这些未定义的函数将导致编译或链接错误,则是一种非常不优雅的方式。 C++11 提供了上述需求的解决方案,即引入delete关键词,允许显式的声明采用或拒绝编译器自带的函数。 1234567class Magic { public: Magic() = default; // 显式声明使用编译器生成的构造 Magic& operator=(const Magic&) = delete; // 显式声明拒绝编译器生成构造 Magic(int magic_number);} 打赏 微信支付 支付宝 本文作者: RobbEr 本文链接: https://robber.ltd/2021/11/14/c-delete-guan-jian-ci/ 版权声明: 本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!