C++中怎么使用delete禁止默认行为
发表于:2025-02-04 作者:千家信息网编辑
千家信息网最后更新 2025年02月04日,这篇文章主要讲解了"C++中怎么使用delete禁止默认行为",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"C++中怎么使用delete禁止默认行为"吧
千家信息网最后更新 2025年02月04日C++中怎么使用delete禁止默认行为Reason(原因) Example(示例) Example(示例) Enforcement(实施建议)
这篇文章主要讲解了"C++中怎么使用delete禁止默认行为",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"C++中怎么使用delete禁止默认行为"吧!
如果不需要默认(同时不需要其他选项)行为,使用=delete禁止它们
某些情况下·,也有可能·不希望存在默认行为。
class Immortal {
public:
~Immortal() = delete; // do not allow destruction
// ...
};
void use()
{
Immortal ugh; // error: ugh cannot be destroyed
Immortal* p = new Immortal{};
delete p; // error: cannot destroy *p
}
独占指针可以被移动,但是不能被拷贝。为了实现这一点,代码禁止了拷贝操作。禁止拷贝的方法是将源自左值的拷贝操作声明为=delete。
template > class unique_ptr {
public:
// ...
constexpr unique_ptr() noexcept;
explicit unique_ptr(pointer p) noexcept;
// ...
unique_ptr(unique_ptr&& u) noexcept; // move constructor
// ...
unique_ptr(const unique_ptr&) = delete; // disable copy from lvalue
// ...
};
unique_ptr make(); // make "something" and return it by moving
void f()
{
unique_ptr pi {};
auto pi2 {pi}; // error: no move constructor from lvalue
auto pi3 {make()}; // OK, move: the result of make() is an rvalue
}
注意:禁止的函数应该是公有的
按照惯例,被删除函数(deleted functions)声明为public,而不是private。当用户代码尝试调用一个成员函数时,C++会在检查它的删除状态位之前检查它的可获取性(accessibility,即是否为public?)。当用户尝试调用一个声明为private的删除函数时,一些编译器会抱怨这些删除的函数被声明为private
消除默认操作(应该)应该基于类的期待语义。怀疑这些类,但同时维护类的"正面清单",其内容是由人断定是正确的东西。
感谢各位的阅读,以上就是"C++中怎么使用delete禁止默认行为"的内容了,经过本文的学习后,相信大家对C++中怎么使用delete禁止默认行为这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是,小编将为大家推送更多相关知识点的文章,欢迎关注!
行为
C++
函数
拷贝
内容
学习
代码
同时
情况
用户
示例
尝试
检查
东西
原因
就是
建议
思路
惯例
成员
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
泉州祥记网络技术咨询
开挂链接服务器还得等72小时吗
魔兽世界服务器国王之谷
中国云服务器招商项目平台
2022湖北银商杯网络安全大赛
郑州网络安全科技馆如何预约
数据库的安全策略有哪些
倍思网络技术有限公司
旭辉集团软件开发
华为服务器开机卡在logo界面
盐田区一体式服务器机柜
冰霜瓦尔格兽数据库
县局网络安全检查
数据库撤稿论文
数据库专家高鹏
浙江正规软件开发价格表
面试软件开发如何自我介绍
郑州科技学院数据库期末考试
入侵服务器修改数据库
华为手机云服务器怎么下载
德宏java软件开发
分布式数据库不可能同时满足
校园一卡通软件开发
深圳科技互联网公司
上地游戏软件开发公司
华三杯网络技术大赛成绩
加价销售软件开发
签订软件开发合同注意什么
服务器电脑能当家用电脑吗
南京网络安全班