2012-03-21 8 views
0

QT C++でtoString関数を記述する際に問題があります。QT C++関数(文字列のオプションパラメータ付き)

たとえば、これは私のヘッダーファイルQString toString(QString delimiter = ":")にあります。そして、私は次のエラーを取得する

エラー:型のパラメータのデフォルト引数「QStringの」「[3]のconst char型」

を入力したotpionalパラメータは、他のタイプのためにうまくいきましたが、それはコンパイラの解釈と思われます":"型の文字として、そのように私に次のエラーを与える(私は文字を使用すると思った ''、私は間違っていた)。

私はこの物をGoogleで探そうとしましたが、役に立たないものは見つけられませんでした。私はかなり簡単に修正する必要がありますが、私はその言語を初めて使っています。

は、コンパイラエラーがのparamaterがタイプQStringであると言っているが、それは文字列リテラルであるので、あなたが与えてくれたデフォルト値はタイプconst char[3](のconst文字配列)である

答えて

1

ありがとうございます。 QStringにはconst char*(配列が配列に崩壊することを覚えている)のコンストラクタがあるので、普通はconst char*からQStringへの暗黙的な変換を行うことができますが、コンストラクタはexplicitと宣言されているため明示的に呼び出されるようです。

編集:それはヘッダがちょうど含める必要がある、明示的ではありません:)

+0

ええ、私はそのようにそれをキャストしようとしたが、それは動作しませんでした、これは誤りでした:不完全な型の無効な使用」を構造体QString ' – user1039063

+2

aaah、私の愚かな頭、欠けていたものは#include です、今は動作します、ありがとうございます:) – user1039063

+0

ええええ、アクションはヘッダーファイルで行われます:) – user1039063

関連する問題