在C++中关于友元函数的进一步理解
友元函数是C++编程语言中的一种特殊函数,它可以访问类的所有成员,包括私有成员和保护成员。友元函数不是类的成员函数,而是一种特殊的全局函数,它可以访问类的所有成员。
让我们来了解一下类的成员函数。类的成员函数是属于类的函数,它们可以访问类的所有成员,包括私有成员和保护成员。成员函数的原型要写在类体中,原型说明了函数的参数表和返回值类型。而函数的定义一般在类外面,也可以直接在类内部定义。前者与普通函数不同的是,实现成员函数时要指明类的名称,具体形式为:返回值类型 类名 :: 函数成员名(参数表){函数体};而后者一般为一些短小的函数(5行以内),也就是内联函数。
现在,让我们来了解一下友元函数。友元函数是指某些虽然不是类成员却能够访问类的所有成员的函数。类授予它的友元特别的访问权。通常同一个开发者会出于技术和非技术的原因,控制类的友元和成员函数(否则当你想更新你的类时,还要征得其它部分的拥有者的同意)。
为什么要使用友元函数?友元函数的优点是能够提高效率,表达简单、清晰。但是,也有缺点:破坏了程序的封装性。有时候不到万不得已的时候才使用。
在本文中,我们使用了一个简单的示例程序来演示友元函数的使用。我们定义了一个名为ca的类,其中包括私有成员id和保护成员name。然后,我们定义了一个友元函数fun,允许它访问ca类的私有成员和保护成员。我们在main函数中实例化了ca类,并调用了友元函数fun。
友元函数的声明方式有两种:一种是在类外声明友元函数,一种是在类内声明友元函数。在类外声明友元函数时,需要使用friend关键字来指定友元函数的名称和参数表。在类内声明友元函数时,可以直接使用friend关键字来指定友元函数的名称和参数表。
另外,友元函数和类的成员函数的区别在于:成员函数有this指针,而友元函数没有this指针。友元函数是不能被继承的,就像父亲的朋友未必是儿子的朋友。
友元函数是C++编程语言中的一种特殊函数,它可以访问类的所有成员,包括私有成员和保护成员。友元函数的优点是能够提高效率,表达简单、清晰,但是也有缺点:破坏了程序的封装性。友元函数的声明方式有两种:一种是在类外声明友元函数,一种是在类内声明友元函数。