在理解 C++ 中的友元函数时出现错误

pri*_*arn 2 c++ oop c++11

为什么我之前收到“预期标识符”错误.token

请提供一个解决方案以正确理解friend功能。

起初,我遇到了前向声明错误,但我自己解决了这个错误。

#include<iostream>
using namespace std;

class a;

class b
{
public:
    void search(a and);
};

class a
{
    string name;
    friend void b::search(a and);
public:
};

void b::search(a and)
{
    cout << and.name;
}

int main()
{

}
Run Code Online (Sandbox Code Playgroud)

Sil*_*olo 7

为了与旧键盘和某些符号不可用的编码方案兼容,可以使用某些关键字来代替符号。其中,and是 的有效替代&&。所以你的and.name实际上被解析为&&.name,这是一个语法错误。

您的问题的(不幸的)解决方案是:不要命名变量and或该列表中的任何其他单词。