0

コンストラクター引数として列挙値を取得しAsString()、値を文字列として返すメンバー関数を持つ型を定義するために使用できる、いくつかの基本的なコードを作成しました。

を含めないと、コードはコンパイルされません<iostream>mainタイプcolorが宣言されていないことを示す警告が表示されます。入出力関数や演算子が使用されていないのに、コードに入出力ヘッダーファイルをインクルードする必要があるのはなぜですか?

enum ColorEnum {blue, red};

class color
{
    protected:
        ColorEnum value;
    public:
        color(ColorEnum initvalue)
        {
            value = initvalue;
        }
        std::string AsString()
        {
            switch (value)
            {
                case blue:
                    return "blue";
                case red:
                    return "red";
                default:
                    return "N/A";
            }
        }
};

int main()
{
    color mycolor = blue;
    return 0;
}
4

2 に答える 2

7

あなたは必要ありません<iostream>、あなたは必要<string>です、あなたstd::stringはそれを介して間接的に得ているかもしれません<iostream>

于 2013-02-07T13:11:33.830 に答える
5

を含める必要はありません<iostream><string>、を使用std::stringしているため、コンパイラがオフになる可能性があります。

含め<string>てもエラーが発生する場合は、コンパイラのバグのように聞こえます。

于 2013-02-07T13:11:33.783 に答える