C++如何避免隐式转换运算符
发表于:2025-02-03 作者:千家信息网编辑
千家信息网最后更新 2025年02月03日,这篇文章主要介绍"C++如何避免隐式转换运算符",在日常操作中,相信很多人在C++如何避免隐式转换运算符问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"C++如何避免隐式
千家信息网最后更新 2025年02月03日C++如何避免隐式转换运算符
这篇文章主要介绍"C++如何避免隐式转换运算符",在日常操作中,相信很多人在C++如何避免隐式转换运算符问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"C++如何避免隐式转换运算符"的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
C.164:避免隐式转换运算符
Reason(原因)
隐式转换可以很重要(例如,double转换为int),但经常会带来意外的结果(例如,String转换为C风格字符串)。
Note(注意)
优先采用显式命名转换,直到发现必须重视的需求。我们通过"必须重视的需求"来表达在应用领域中非常本质(例如整数到复数的转换)且经常遇到的原因。不要因为很小的便利而(通过转换运算符或者非显式构造函数)引入隐式转换。
Example(示例)
struct S1 {
string s;
// ...
operator char*() { return s.data(); } // BAD, likely to cause surprises
};
struct S2 {
string s;
// ...
explicit operator char*() { return s.data(); }
};
void f(S1 s1, S2 s2)
{
char* x1 = s1; // OK, but can cause surprises in many contexts
char* x2 = s2; // error (and that's usually a good thing)
char* x3 = static_cast(s2); // we can be explicit (on your head be it)
}
意外的、具有潜在破坏的隐式转换可能在任何时候发生,而且难于发现。
S1 ff();
char* g()
{
return ff();
}
被ff()返回的string对象会在返回的指针被使用之前被销毁。
Enforcement(实施建议)
提示所有的转换运算符。
到此,关于"C++如何避免隐式转换运算符"的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!
运算符
运算
C++
学习
意外
原因
更多
需求
帮助
实用
重要
接下来
函数
复数
字符
字符串
对象
常会
应用领域
建议
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
丹阳网络安全
久凯网络安全
地中海贫血基因分型数据库
小小蚁国怎么换服务器
网络安全与法律研讨
常用的web服务器排名
荣耀手机网络技术
软件开发包的英文缩写是
如何实施网络安全法律法规
我的世界能购买管理的服务器
网络安全知名院士
hp服务器安全启动
武穴软件开发职位招聘
南京水务集团网络安全中标
数据库属于什么类型
服务器如何设置程序自动运行
ftp无法登录服务器
erp服务器管理咨询
把网络安全放到最后的企业
投入品数据库
洪山好的软件开发公司
幻塔经常无法连接服务器
网络安全威胁的发展态度
国家网络安全教育公开课
网络安全为人民靠人民表情包
山西通信软件开发应用
电脑服务器快捷命令
网络安全每日一学
lncediting数据库
服务器转发挖矿违法吗