gpt4 book ai didi

c++ - C++ 中两个具有友元方法的类

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:54:48 25 4
gpt4 key购买 nike

目前我正在阅读一本关于 C++ 的书,里面有一些练习。其中一个练习要求构建两个类,每个类都有一个友元方法。我目前的猜测是这样的:

#include <iostream>

using std::cout;
using std::endl;

class Y;

class X{
public:
void friend Y::f(X* x);
void g(Y* y){cout << "inside g(Y*)" << endl;}
};

class Y{
public:
void friend X::g(Y* y);
void f(X* x) {cout << "inside f(X*)" << endl;}
};

但我的猜测没有编译,因为类 Xvoid friend Y::f(X* x); 方法声明。我该如何解决这个难题?请再给我一些猜测。

最佳答案

为了将函数声明为友元,编译器必须首先看到它,而 C++ 不允许成员函数的前向声明。因此,您尝试做的事情不可能以您想要的方式进行。您可以尝试使用 here 中的“密码”方法.

或者,您可以将 void friend Y::f(X* x); 替换为 friend class Y;

关于c++ - C++ 中两个具有友元方法的类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17155825/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com