我正在尝试创建XOR运算符,并且由于未知原因,我的编译器不接受bool xor()
作为函数,也不允许我调用它或以任何可能的方式使用它。
我想指出的是,我正在学习一本书来学习C ++。特别是 Herbert Schildt的“从零开始学习C ++”(第3版) 本书中引用了这段代码。
如果我将函数命名为bool xar()
或bool XOR()
,我的代码就可以正常工作,但是由于我正在尝试学习C ++,所以我想对为什么会发生此错误有所了解。 / p>
#include <iostream>
using namespace std;
bool xor(bool a, bool b);
int main()
{
bool q, p;
cout << "Enter Q (0 or 1): ";
cin >> q;
cout << "Enter P (0 or 1): ";
cin >> p;
cout << "Q AND P: " << (q && p) << '\n';
cout << "Q OR P: " << (q || p) << '\n';
cout << "Q XOR P: " << xor(q, p) << "\n";
cout << "nice";
return 0;
}
bool xor(bool a, bool b)
{
return (a || b) && !(a && b);
} ```
// The error message i receive is from the lines:
// ---------------------------
// bool xor(bool a, bool b);
// *expected an identifier*
// ---------------------------
// cout << "Q XOR P: " << xor(q, p) << "\n";
// *expected an expression*
// ---------------------------
// bool xor(bool a, bool b)
// *expected an identifier*
答案 0 :(得分:10)
xor
是关键字,不能在您的代码中用作名称。 C ++提供了Alternative operator representations,因此您可以使用||
来代替or
。 xor
有一个^
,因此您不能使用该名称。