现在的位置: 首页 > 综合 > 正文

c++ explicit

2017年12月27日 ⁄ 综合 ⁄ 共 249字 ⁄ 字号 评论关闭

String s1 = 10;分配10个字节的空字符串

String s2 = 'a';分配int(‘a’)个字节的空字符串

隐式转换成了分配若干字节的空字符串,容易令人误解。

为了避免这种错误的发生,我们可以声明显示的转换,使用explicit 关键字:

class
String

{

explicit
Stirng(int n)//本意是预先分配n个字节给字符串

{

......

}


String
( const char* p ); 
// 用C风格的字符串p作为初始化值

};


加上explicit,就抑制了String
( int n )的隐式转换




抱歉!评论已关闭.