/* Human.h */
#include <string>
/* class定义的private数据成员和方法,不能被外部访问,但可以被友元函数和友元类访问
* 友元函数:在类中使用friend可将函数声明为友元函数,友元类可访问类的私有数据和方法
* 友元类:在类中使用friend可将另一个声明为友元类,友元类可访问类的私有数据和方法
*/
class Human {
private:
int age;
friend class Man; //声明友元类,此类可访问私有成员
friend void accessHumanPrivateMember(Human* person); //友元函数,可访问类的私有成员
public:
void getObjAge();
Human(int initAge);
~Human();
};
class Man {
public: //不加public,默认为private
void getClassHumanPrivateDate(Human* person){
std::cout << "friend calss access class Human private age = = " << person->age << std::endl;
}
};
/*Human.cpp*/
#include <iostream>
#include <string>
#include <string.h>
#include "Human.h"
void Human::getObjAge()
{
printf("1 age = %d\n", age); //此对象的地址
}
Human::H