呵呵,好久没来了,最近在复习一下C++内容,在此分类谈一下C++一些容易迷惑技术人员的问题,今天主要谈一下C++的友元函数。首先,大家肯定会发问,什么是友元函数。友元函数是这样一种函数,它并不是某个类的成员函数。但仍可以访问这个类的对象的私有成员变量。一般我们要声明一个友元函数,我们会将这个友元函数定义在这个类里面。以friend关键字开头,如图Fig1.
操作符的重载就是一个友元函数,定义在类Point里面。操作符>>可以访问Point类对象的私有成员变量。在实现文件中,我是这样实现的(cpp文件)。
请注意,在友元函数函数体中,可以进行Point类对象的访问,我应用的为T.x与T.y。不能直接访问x与y。我想大家应该对友元函数如何声明与使用有了一定的了解。下面我们来讨论一下在什么时候应用友元函数。
1,首先,我们要肯定的一点是,友元函数肯定是编写这个类的程序员所写的,当我们要去访问一个类的私有成员时,我们最应该想到的是如何写一个公有成员函数来操作该累的成员变量,然而,有时候,是有些困难的,在这些困难没法解决的时候,我们才会去想调用友元函数来解决这些问题。
2,在声明一个函数是某个类的友元函数时,我们一定要将声明定义在这个类里面。一定要以关键字friend开头。然而,友元函数可以出现在这个类的任何一个地方,不论public和private。
3,友元函数不能访问该类的成员变量,但是可以访问该类对象的成员变量。
4,调用友元函数时,需要指出调用的是哪个对象的成员变量,要指出所要访问的具体对象。
5,友元函数不会随着类的继承而继承。
好了,关于友元函数,就说到这里吧,我想大家都应该了解到友元函数如何应用了,呵呵。