文件名称:使用重载以避免隐式类型转换-*重构*改善既有代码的设计(带完整书签)
文件大小:1.28MB
文件格式:PDF
更新时间:2024-06-27 17:56:09
C++ 编程规范
建议4.7 使用重载以避免隐式类型转换 说明:隐式转换常常创建临时变量;如果提供类型精确匹配的重载函数,不会导致转换。 示例: class String { //… String( const char* text ); //允许隐式转换 }; bool operator==( const String&, const String& ); //…代码中某处… if( someString == "Hello" ) {... } 上述例子中编译器进行隐式转换,好像someString == String( "Hello")一样,形成浪费,因为并不需 要拷贝字符。使用操作符重载即可消除这种隐式转换: