无法在C ++中将布尔函数命名为“ xor()”

时间:2019-07-24 20:46:06

标签: c++ function boolean xor

我正在尝试创建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*

1 个答案:

答案 0 :(得分:10)

xor是关键字,不能在您的代码中用作名称。 C ++提供了Alternative operator representations,因此您可以使用||来代替orxor有一个^,因此您不能使用该名称。