Lippman 的Essential C++第 4.7 节做到了这一点。但我不知道为什么这段代码无法编译:
#include <iostream>
using namespace std;
class A
{
void f();
//other members...
};
class B
{
//other members...
friend void A::f();
};
int main()
{
return 0;
}
在 A 类编译的 void f() 之前放置一个“public:”。所以李普曼错了?
ps 李普曼的代码是这样的:
//...
class Triangular_iterator
{
//...
private:
void check_integrity() const;
//...
};
//...
class Triangular
{
//...
friend void Triangular_iterator::check_integrity();
//...
};
//...