我有两行代码有问题。错误是:

|第4行|错误:'('标记|之前的预期构造函数,析构函数或类型转换

|第50行|错误:“!=”标记之前的预期主要表达式|

以下是代码位:

OPairType::OPairType (x=0, y=0);


return != (lh.x == rh.x && lh.y == rh.y);

如果您需要更多代码,请发表评论,我会提供。
感谢您的任何帮助。

编辑:11/7/2013:这是标题代码:
class OPairType{
private:
 int x;
 int y;
public:
 OPairType (int=0, int=0);
 int getX() const;
 int getY() const;
 void setX(int);
 void setY(int);
 void setValues(int, int);
 friend OPairType operator + (OPairType, OPairType);
 friend OPairType operator - (OPairType, OPairType);
 friend bool operator == (OPairType, OPairType);
 friend bool operator != (OPairType, OPairType);
 friend std::ostream& operator << (std::ostream&, OPairType);

这是.cpp代码:
#include "OPairType.h"
#include <iostream>

OPairType::OPairType (int x, int y);

int OPairType::getX() const {
 return x;
}

int OPairType::getY() const {
 return y;
}

void OPairType::setX(int new_x) {
 x = new_x;
}

void OPairType::setY(int new_y) {
 y = new_y;
}

void OPairType::setValues (int new_x, int new_y){
 x = new_x;
 y = new_y;
}

OPairType operator + (OPairType lh, OPairType rh){
OPairType answer;

 answer.x = lh.x + rh.x;
 answer.y = lh.y + rh.y;

 return answer;
}

OPairType operator - (OPairType lh, OPairType rh){
OPairType answer;

 answer.x = lh.x - rh.x;
 answer.y = lh.y - rh.y;

 return answer;
}

bool operator == (OPairType lh, OPairType rh){
 return lh.x == rh.x && lh.y == rh.y;
}

bool operator != (OPairType lh, OPairType rh){
 return !(lh.x == rh.x && lh.y == rh.y);
}

std::ostream& operator << (std::ostream& out, OPairType c){
 out << "(" << c.x << ", " << c.y << ")";
 return out;
}

最佳答案

这不是!=的有效用法:

return != (lh.x == rh.x && lh.y == rh.y);
!=是一个二进制运算符,需要两个操作数,C++标准草案5.10 Equality运算符的语法如下:
equality-expression != relational-expression

和关系运算符(, =)一样要求:



您的正确操作数符合此要求,但返回的语句不符合要求。看起来您想否定表达式,如果是这种情况,那么这就是您想要的:
return !(lh.x == rh.x && lh.y == rh.y);

更新资料

现在,您已经更新了代码,我们可以在此处看到构造函数的以下定义:
OPairType::OPairType (int x, int y);

不完整,因为它没有主体,可以执行以下操作:
OPairType::OPairType (int X, int Y) : x(X), y(Y) {}
                                    ^            ^
                                    |            |
                                    |            Body
                                    Initialization list

09-05 23:45