Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/132.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ C++;操作员意外错误_C++_Operator Overloading - Fatal编程技术网

C++ C++;操作员意外错误

C++ C++;操作员意外错误,c++,operator-overloading,C++,Operator Overloading,我试图为这样的类定义一个运算符: 文件.h bool operator<<(XMLPair *p2); bool操作符左侧必须是对象,而不是指针,请尝试: (*p1) << p2; (*p1)左侧必须是对象,而不是指针,请尝试: (*p1) << p2; (*p1)p1是指针;成员运算符的左手参数必须是对象。因此,您需要: (*p1) << p2; (*p1)p1是指针;成员运算符的左手参数必须是对象。因此,您需要: (*p1) <&

我试图为这样的类定义一个运算符:

文件.h

bool operator<<(XMLPair *p2);

bool操作符左侧必须是对象,而不是指针,请尝试:

(*p1) << p2;

(*p1)左侧必须是对象,而不是指针,请尝试:

(*p1) << p2;

(*p1)
p1
是指针;成员运算符的左手参数必须是对象。因此,您需要:

(*p1) << p2;

(*p1)
p1
是指针;成员运算符的左手参数必须是对象。因此,您需要:

(*p1) << p2;

(*p1)您声明了指向p1的指针,并调用了指针上的运算符。

尝试调用运算符on(*p1),而不是p1。

您声明了指向p1的指针,并调用了运算符on pointer。 尝试调用(*p1)上的运算符,而不是p1。

是否应该使用:(*p1)是否应该使用:(*p1)
(*p1) << p2;
// Remove `const` as necessary, if the operator needs to modify either operand
bool operator<<(XMLPair const & p2) const;

XMLPair p1, p2;
p1 << p2;