【发布时间】:2019-07-24 20:46:06
【问题描述】:
我正在尝试创建一个 XOR 运算符,但由于未知原因,我的编译器不接受 bool xor() 作为函数,它也不允许我调用它或以任何可能的方式使用它。
我想指出,我正在关注一本书来学习 C++。具体是 Herbert Schildt 的“从头开始学习 C++”(第 3 版) 本书引用了这段代码。
如果我将函数命名为 bool xar() 或 bool XOR(),我的代码在这里工作得很好,但是由于我正在尝试学习 C++,所以我想了解一下为什么会发生这个错误。
#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*
【问题讨论】:
-
xor是关键字:en.cppreference.com/w/cpp/keyword -
不相关,但布尔值的异或可以简单地写成
a != b。