一步一步学习C++(类)之友元函数
<span style="font-size:12px;">// FriendForClass.cpp : 定义控制台应用程序的入口点。 // #include "stdafx.h" class MyClassY; //提前声明 class MyClassZ; //提前声明 class MyClassX { friend class MyClassZ; public: void print(); void setX(MyClassY &s,int dis); friend void distance(MyClassX &a,MyClassX &b);/*友元函数*/ private: int x; int y; static int z; }; int MyClassX::z = 0;//一定要记得赋值 class MyClassY { public: // MyClassX可以访问MyClassY的成员私有或者保护数据 friend void MyClassX::setX(MyClassY &s,int dis);/*友元函数*/ private: int x; int y; }; class MyClassZ { public: // MyClassZ可以访问MyClassX所有成员 void displayFor();/*用于访问MyClassZ的成员*/ private: int z1; int z2; MyClassX X;//需要在这里定义一个对象 }; /*********************************************************/ //MyClassZ可以访问MyclassX必须通过类的对象,间接访问成员 void MyClassZ::displayFor() { X.x = 10; X.z = 10; MyClassX::z = 10; } void MyClassX::setX(MyClassY&s,int dis) { s.x = dis; } /******************************************************/ //不能直接访问类的成员,必须通过类的对象,间接访问成员 void distance(MyClassX &a,MyClassX &b) { int x1 = a.x; int y1 = b.y; printf("%d %d",x1,y1); } /*********************************/ //成员函数可以直接访问类的成员 void MyClassX::print() { printf("%d %d",x,y); } int _tmain(int argc, _TCHAR* argv[]) { return 0; } </span>
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。