我的学校项目要求我重新创建std :: string类(细节较少)。我有一个小问题,我有两个冲突的(?)构造函数。
问题是当我想从单个字符创建一个String时。而不是打电话
String(char);
它调用
String(char[]);
如何指定我想调用的构造函数?
更新 哇,现在我觉得很傻。我正在调用char *而不是char,所以当然它会调用数组/指针版本。谢谢你让我觉得这很痛苦:)
答案 0 :(得分:1)
假设您有以下
class String {
public:
String(char);
String(char[]);
};
您将
使用char charvar = 'X';
String s(charvar);
调用第一个表单,
char strvar[] = "XXXX";
String s(strvar);
拨打第二个。
除此之外,你的问题太不明确/不明确,无法给出你想要实现的目标的简明答案。
答案 1 :(得分:0)
您需要使用单引号来指定char
,否则会将其视为char[]
,并且只有一个字符(除终止字符外)
'a' // char
"a" // char[]