【C++】访问类中的私有成员函数
大家都知道只有类的成员才能访问类的私有数据,但有时在特定的条件下还要由非类的成员来调用类中的私有数据。为了实现这一功能,C++语言提供了友元的机制,通过友元函数就可以解决这样的问题。本实例在非类的成员方法中调用类的私有数据,
友元函数是一种定义在类外部的普通函数,但友元要在类内进行说明,为了与该类的成员加以区别,在说明时加上friend关键字。友元不是成员函数,但友元可以访问类中的私有成员。对于友元函数的使用应该注意不要随意使用,因为友元的机制本身就破坏了类的封装性和隐蔽性。
1 #include "stdafx.h" 2 #include "iostream" 3 #include "string" 4 using namespace std; 5 6 typedef char String[30]; 7 8 class CPerson 9 { 10 private: 11 String name; //姓名 12 int age; //年龄 13 public: 14 CPerson(String Name, int Age) //构造函数/ 15 { 16 strcpy(name, Name); 17 age = Age; 18 } 19 friend char * GetName(CPerson&p); //定义友元函数 20 }; 21 22 char * GetName(CPerson&p) //获取CPerson类私有信息 23 { 24 return p.name; 25 } 26 27 int main(int argc,char* argv[]) 28 { 29 CPerson p("Jiehong", 23); 30 cout << GetName(p) << endl; 31 return 0; 32 }
浙公网安备 33010602011771号