我的学校项目要求我重新创建std :: string类(使用较少的细节)。我有一个小问题,我有两个冲突的(?)构造函数。我如何调用char构造函数而不是char []构造函数
问题是当我想从单个字符创建一个字符串。而不是调用的
String(char);
它调用
String(char[]);
如何指定哪个构造我想叫什么名字?
更新 哇,现在我觉得很傻。我使用char *调用,而不是char,所以当然会调用数组/指针版本。感谢您使这个痛苦明显,我:)
我的学校项目要求我重新创建std :: string类(使用较少的细节)。我有一个小问题,我有两个冲突的(?)构造函数。我如何调用char构造函数而不是char []构造函数
问题是当我想从单个字符创建一个字符串。而不是调用的
String(char);
它调用
String(char[]);
如何指定哪个构造我想叫什么名字?
更新 哇,现在我觉得很傻。我使用char *调用,而不是char,所以当然会调用数组/指针版本。感谢您使这个痛苦明显,我:)
您需要使用单引号,否则指定char
它会认为这是一个char[]
使用单个字符(除了终止字符)
'a' // char
"a" // char[]
对不起,我没有指定,我打电话使用一个字符变量。 – user1929613 2015-04-02 16:50:05
@ user1929613实际上有什么问题?使用'char var;'调用你的构造函数应该选择你的第一个表单。 – 2015-04-02 16:51:46
更新后,问题解决了。我的错误:)谢谢你的帮助。 – user1929613 2015-04-02 17:01:44
应该您有以下
class String {
public:
String(char);
String(char[]);
};
您将使用
char charvar = 'X';
String s(charvar);
调用第一形式,并且
char strvar[] = "XXXX";
String s(strvar);
来调用所述第二。
除此之外,您的问题太不清楚/不具体,为您实际要实现的目标给出一个简明的答案。
你在创建String时使用单引号'''吗? – 2015-04-02 16:49:17
请形成[MCVE](http://stackoverflow.com/help/mcve)。 – chris 2015-04-02 16:49:50
_“我怎样才能指定我想调用哪个构造函数?”_您使用传递的相应类型之一作为参数来消除歧义。 – 2015-04-02 16:50:00