2014-06-08 27 views
0

考慮以下類C++的構造函數。它給我的錯誤:C++構造函數中char的缺省值

類型「字符」的參數默認參數的類型爲「爲const char [2]」

一些建議吧。我會很高興,如果我可以設置correctAnswer的默認構造函數爲""(無)。

#include <string> 
#include <iostream> 

class Question{ 
    int id; 
    std::string text; 
    char correctAnswer; 

public: 

    Question(int id=0, const std::string& text="", char correctAnswer="a") : // here is the error 
     id(id),text(text),correctAnswer(correctAnswer) { 
    } 
} 

回答

3

將其更改爲

Question(int id=0, const std::string& text="",char correctAnswer='a') 

'a'是單個字符。

雙引號總是會創建一個數組。

「你好」 是尺寸6.

的陣列 「a」 爲大小2.

額外1爲空終止(0或 '\ 0')的陣列

+0

你說得對!謝謝 ! – user3009269

1
Question(int id=0, const std::string& text="", 
          char correctAnswer='a') 
//            ^^ Use single Quote for a char 
     id(id),text(text),correctAnswer(correctAnswer) 
{ 

} 
+0

你說得對!謝謝 ! – user3009269