本文主要是介绍24.C++友元函数,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
/*友元函数:类具有数据封装性和数据隐藏性,外部数据不能访问类中的私有成员和保护成员,只有类中的的成员函数才能访问类中的私有成员和保护成员。程序设计时有时需要在类的外部访问类的私有成员和保护成员,这种方法称为友元。一般声明形式:friend 函数类型 友元函数名 (形参列表)定义格式:函数类型 友元函数名(形参列表){函数体}*/
#include <iostream>
#include <math.h>
class Number
{
public:Number(int _n);//声明构造函数friend int squareroot(Number &a);//声明友元函数
private:int n;
};
//构造函数
Number::Number(int _n)
{n=_n;
}
//定义友元函数
int squareroot(Number &a)
{int num=a.n;//访问私有成员nreturn (int)sqrt(num);
}
/*注意1.友元函数必须在类中声明,在类外定义2.友元函数不是类的成员函数,但能访问类的全部成员3.友元函数在一定程度上破坏了类中数据成员的完整性和封装性,减一尽量不使用或少使用友元函数*/
int main(int argc, const char * argv[])
{Number num1(81);std::cout<<squareroot(num1)<<std::endl;//直接调用友元函数return 0;
}
这篇关于24.C++友元函数的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!