友元函数是可以直接访问私有成员,但是为了私有成员不被随意修改就用get函数返回一个复本,相当于对外只读。
A,B类的定义顺序需要交换一下,另外,A类中的 friend void display(A &t); 需要改为 friend void B::display(A &t); 整个代码改正这样试试: #include using namespace std; class A; class B { private: int a; int b; public: B(); void display(A &t); }; class A { private: int a; int b; public: friend void B::display(A &t); A() { a = 5; b = 8; } }; B::B() { a = 1; b = 2; } void B::display(A &t) { cout << t.a << endl << t.b << endl; cout << a << endl << b << endl; } int main() { class A a1; class B b1; b1.display(a1); system("PAUSE"); return 0; }