它可以使枚举中的输出操作符过载吗?我遇到了各种错误(如果我使用类,我没有得到任何错误):
../src/oop.cpp:18:2: error: expected identifier before 'friend'
../src/oop.cpp:18:2: error: expected '}' before 'friend'
../src/oop.cpp:18:2: error: 'friend' used outside of class
../src/oop.cpp:18:16: error: expected initializer before '&' token
../src/oop.cpp:22:1: error: expected declaration before '}' token
Run Code Online (Sandbox Code Playgroud)
我要实现这样的东西(java代码):
public enum Type {
ACOUSTIC, ELECTRIC;
public String toString() {
switch(this) {
case ACOUSTIC: return "acoustic";
case ELECTRIC: return "electric";
default: return "unspecified";
}
}
}
Run Code Online (Sandbox Code Playgroud)
谢谢.
编辑:
enum Type {
//ACOUSTIC, ELECTRIC;
inline std::ostream& operator << (std::ostream& os, Type t) // error here
{
}
};
Run Code Online (Sandbox Code Playgroud)
enum MyEnum {
foo, bar
};
inline std::ostream & operator<<(std::ostream & Str, MyEnum V) {
switch (V) {
case foo: return Str << "foo";
case bar: return Str << "bar";
default: return Str << (int) V;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2650 次 |
| 最近记录: |