【发布时间】:2015-11-17 01:23:55
【问题描述】:
说我有这个:
class Example {
enum class E { elem1, elem2 };
E& operator++(E& e) {
// do things
}
};
似乎很有意义,我什至看到它在 other questions 中使用,但编译器告诉我参数只能为空或 int。
这在普通类中是有道理的,但是当我没有 this 值时,我到底应该做什么?
【问题讨论】:
-
@ShafikYaghmour ideone.com/tEmYxD 这基本上就是问题所在,但带有相关的错误消息。
-
那是不正确的,运算符是为类Example,如果你拿走包装类然后it works fine。返回对局部变量的引用也是未定义的行为。
-
我知道如果去掉包装类它工作得很好,但我正在尝试为该类中的枚举定义一个运算符——我不明白为什么它不能完毕。修复了局部变量的问题,谢谢。
-
在类外定义like so
标签: c++ enums operator-overloading