3

次のシグネチャを持つメソッドを持つクラスがあります。

void print(unsigned char *word);

""のデフォルト値として設定する必要がありますword。どうすればよいですか?

明らかなことを試しましたvoid print(unsigned char *word="");が、次のエラーが発生しました。

error: cannot initialize a parameter of type
  'unsigned char *' with an lvalue of type 'const char [1]'
    void print(unsigned char *word="");

word文字列リテラルで初期化できないので、誰がすればいいですか?

4

4 に答える 4

7

これは、印刷に適用する「プレフィックス」引数だとおっしゃっています。

答えは、引数を作成しconst、関数内で行っている変更を停止してから""、デフォルトの引数として使用する必要があるということです。

void print(const char* prefix = "")
于 2013-11-28T12:16:25.920 に答える
4

""の配列を生成しconst charますが、 の配列または へのポインタが必要な場合NON-const unsigned char、型と cv 修飾の両方が適合しません。

C++char != signed charおよびchar != unsigned char.

という意味かもしれませんvoid print(const char *word);が、おそらくまたはだけが必要です。print(std::string const &)print(std::string)

于 2013-11-28T11:58:47.673 に答える