美文网首页
c++友元函数

c++友元函数

作者: m风满楼 | 来源:发表于2018-10-15 08:14 被阅读0次

友元函数是可以直接访问类的私有成员的非成员函数。 它是定义在类外的普通函数,它不属于任何类,但需要在类的定义中加以声明,声明时只需在友元的名称前加上关键字friend。
优点

  • 普通函数可以访问某个类中的私有或保护成员。提高了程序的效率
    缺点:
  • 破坏了类的封装性和数据的透明性。
class Box
{
   double width;
public:
   double length;
   friend void printWidth( Box box );
   void setWidth( double wid );
};

printWidth的实现:
由于printWidth() 不是任何类的成员函数,所以实现的时候不需要加上作用域运算符,但是由于是友元函数,其可以访问该类的静态成员

void printWidth( Box box )
{
   cout << "Width of box : " << box.width <<endl;
}

声明某个类的所有成员函数均为友元直接在类定义的时候加入
friend class ClassTwo;

友元函数的约束:
1.友元函数没有this指针,如果要访问对象的非静态成员,需要对象做参数

  1. 要访问static成员或全局变量时,不需要对象做参数;

相关文章

  • C++语言基础(03)

    1.内存分配 C/C++ 内存分区: java 创建对象 2.常函数 3.友元函数和友元类 友元函数 友元类 4....

  • 10-C++远征之模板篇-学习笔记

    C++远征之模板篇 将会学到的内容: 模板函数 & 模板类 -> 标准模板类 友元函数 & 友元类 静态数据成员 ...

  • 慕课网-C++远征之模板篇(上)-学习笔记

    C++远征之模板篇 将会学到的内容: 模板函数 & 模板类 -> 标准模板类 友元函数 & 友元类 静态数据成员 ...

  • 2001.C++BASE-friend(友元)

    转:关于C++中的友元函数的总结 1.友元函数的简单介绍 1.1为什么要使用友元函数 在实现类之间数据共享时,减少...

  • 【C++】C++学习笔记之五:友元

    在类中有一种函数声明前加friend关键字的函数声明方式,这种函数被称为C++类的友元函数 1. 友元的作用——破...

  • c++ 友元

    在c++中,通过关键字friend声明为友元。友元可以范围与其有好友关系的类中私有成员。友元包括友元函数和友元类。...

  • 7. C++友元函数和友元类

    7.1 友元函数 C++只有本类中的函数可以访问本类的 private 成员。 但一种情况例外,那就是友元(fri...

  • c++语法2

    接上篇我们继续学习静态成员、友元函数、继承、多重继承,继承访问权限等 静态成员与友元函数:c++中静态成员与jav...

  • c++友元函数

    友元函数是可以直接访问类的私有成员的非成员函数。 它是定义在类外的普通函数,它不属于任何类,但需要在类的定义中加以...

  • C++ 友元函数

    类的友元函数是定义在类外部,但有权访问类的所有私有(private)成员和保护(protected)成员。尽管友元...

网友评论

      本文标题:c++友元函数

      本文链接:https://www.haomeiwen.com/subject/cyuxzftx.html