我的學校項目要求我重新創建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