use*_*430 0 c++ operator-overloading
我收到这个错误:
错误1错误C2678:二进制'<':找不到带有'const Data'类型左手操作数的运算符(或者没有可接受的转换)
但我的结构定义如下:
struct Data
{
String strData;
int intData;
double doubleData;
Data() : intData(-1), doubleData(-0.f)
{}
Data(const String& str, int i, double d) : strData(str), intData(i), doubleData(d)
{}
const bool operator<(const Data& rightData)
{
return strData < rightData.strData;
}
};
Run Code Online (Sandbox Code Playgroud)
我想我有'<'运算符,但是编译器告诉我不要.
有一点要提,现在我正在比较const Data< Data类型,也许这const会让事情变得糟糕.
我认为这只是一个小错误,但我看不出来......
你需要:
bool operator<(const Data& rightData) const
{
return strData < rightData.strData;
}
Run Code Online (Sandbox Code Playgroud)
String如果没有,那么班级也需要运营商.
| 归档时间: |
|
| 查看次数: |
400 次 |
| 最近记录: |