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 回答