发布日期:2015-12-22 17:05 来源: 标签: 编程语言 C++教程 C++友元类 C++友元机制
友元机制允许一个类将对其非公有成员的访问权授予指定的函数或类。友元可以出现在类定义的内部的任何地方。友元不是授予友元关系的那个类的成员,所以它们不受声明出现部分的访问控制影响。下面我们就做一下具体讲解,希望大家多多支持中国站长网络学院。
     友元机制允许一个类将对其非公有成员的访问权授予指定的函数或类。友元可以出现在类定义的内部的任何地方。友元不是授予友元关系的那个类的成员,所以它们不受声明出现部分的访问控制影响。
建议:将友元声明成组地放在类定义的开始或结尾。
1 友元类
class Husband
{
public:
     friend class Wife;
private:
     double money;//钱是老公私有的,别人不能动,但老婆除外
};
class Wife
{
public:
     void Consume(Husband& h)
     {
          h.money -= 10000;//老婆可以花老公的钱
     }
};
Husband h;
Wife w;
w.Consume(h);
2 使其他类的成员函数成为友元
class Husband; //1.声明Husband 
class Wife //2.定义Wife类 
{
public:
     void Consume(Husband& h);
};
 
class Husband //3.定义Husband类
{
public:
     friend void Wife::Consume(Husband& h);//声明Consume函数。
private:
     double money;//钱是老公私有的,别人不能动,但老婆除外
};
 
void Wife::Consume(Husband& h) //4.定义Consume函数。
{
     h.money -= 10000;//老婆可以花老公的钱
}
注意类和函数的声明和定义的顺序:
(1)声明类Husband 
(2)定义类Wife,声明Consume函数
(3)定义类Husband
(4)定义Consume函数。

相关评论

专题信息
    C++是在C语言的基础上开发的一种面向对象编程语言,应用广泛。C++支持多种编程范式 --面向对象编程、泛型编程和过程化编程。最新正式标准C++于2014年8月18日公布。 其编程领域众广,常用于系统开发,引擎开发等应用领域,是至今为止最受广大程序员受用的最强大编程语言之一,支持类:类、封装、重载等特性! 本教程从基础讲解了C++语言,希望对大家有所帮助,望多多支持中国站长网络学院。