我写了一些我学到的基本代码,可以用来定义一个类型,它获取一个枚举值作为构造函数参数,并有一个成员函数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;
}
答案 0 :(得分:7)
您不需要<iostream>
,<string>
需要std::string
,您可能通过<iostream>
间接获得{{1}}。
答案 1 :(得分:5)
您不需要包含<iostream>
,而是<string>
,因为您使用std::string
,因此可能会关闭编译器。
如果您包含<string>
并仍然收到错误,那听起来像是编译器中的错误。