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 )的隐式转换