如何调用char构造函数而不是char []构造函数

时间:2015-04-02 16:47:08

标签: c++ constructor

我的学校项目要求我重新创建std :: string类(细节较少)。我有一个小问题,我有两个冲突的(?)构造函数。

问题是当我想从单个字符创建一个String时。而不是打电话

String(char);

它调用

String(char[]);

如何指定我想调用的构造函数?

更新 哇,现在我觉得很傻。我正在调用char *而不是char,所以当然它会调用数组/指针版本。谢谢你让我觉得这很痛苦:)

2 个答案:

答案 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[]