class String {
public:
String(int n); // allocate n bytes to the String object
String(const char *p); // initializes object with char *p
};
现在下面的代码
String mystring = 'x';
这将调用String(int n)而不是String(const char *)。 为什么即使我传递一个const char *也会发生类型转换?我知道一个明确的解决了这个问题,但为什么即使我传递了正确的类型,类型转换首先发生?
答案 0 :(得分:4)
您没有传递const char *
。您正在传递char
。
你打算写:
String mystring = "x";
答案 1 :(得分:2)
'x'
属于char
,char
至int
的转化效果优于char
至const char*
。使用双引号创建字符串文字。