2015-04-02 125 views
0

我的學校項目要求我重新創建std :: string類(使用較少的細節)。我有一個小問題,我有兩個衝突的(?)構造函數。我如何調用char構造函數而不是char []構造函數

問題是當我想從單個字符創建一個字符串。而不是調用的

String(char); 

它調用

String(char[]); 

如何指定哪個構造我想叫什麼名字?

更新 哇,現在我覺得很傻。我使用char *調用,而不是char,所以當然會調用數組/指針版本。感謝您使這個痛苦明顯,我:)

+0

你在創建String時使用單引號'''嗎? – 2015-04-02 16:49:17

+4

請形成[MCVE](http://stackoverflow.com/help/mcve)。 – chris 2015-04-02 16:49:50

+1

_「我怎樣才能指定我想調用哪個構造函數?」_您使用傳遞的相應類型之一作爲參數來消除歧義。 – 2015-04-02 16:50:00

回答

0

您需要使用單引號,否則指定char它會認爲這是一個char[]使用單個字符(除了終止字符)

'a' // char 
"a" // char[] 
+0

對不起,我沒有指定,我打電話使用一個字符變量。 – user1929613 2015-04-02 16:50:05

+1

@ user1929613實際上有什麼問題?使用'char var;'調用你的構造函數應該選擇你的第一個表單。 – 2015-04-02 16:51:46

+0

更新後,問題解決了。我的錯誤:)謝謝你的幫助。 – user1929613 2015-04-02 17:01:44

1

應該您有以下

class String { 
public: 
    String(char); 
    String(char[]); 
}; 

您將使用

char charvar = 'X'; 
String s(charvar); 

調用第一形式,並且

char strvar[] = "XXXX"; 
String s(strvar); 

來調用所述第二。

除此之外,您的問題太不清楚/不具體,爲您實際要實現的目標給出一個簡明的答案。

相關問題