关于C++友元函数的实现讲解

 更新时间:2018年12月20日 09:43:17   作者:Engineer-Bruce_Yang  
今天小编就为大家分享一篇关于关于C++友元函数的实现讲解,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧

友元函数是一种特殊的函数,它必须要在类中进行声明,但其本身并不是类的成员函数,但友元函数可以访问类的私有成员变量。

友元函数的好处:

1、实现类之间的数据共享

2、提高程序运行效率,方便编程

友元函数的坏处:

1、破坏数据的隐蔽性和类的封装性

2、降低了程序的可维护性

所有,友元函数应当谨慎的去使用它。

实例:

#include <iostream>
#include <cstring>
using namespace std ; 
class Student
{
 private :
 string name ; 
 int age ; 
 char sex ; 
 int score ; 
 public :
 Student(string name , int age , char sex , int score) ;
 //声明友元函数 
 friend void display_information(Student &Stu); 
};
Student::Student(string name , int age , char sex , int score)
{
 this->name = name ; 
 this->age = age ; 
 this->sex = sex ; 
 this->score = score ; 
}
//注意,友元函数不是类Student的成员,但可以访问类中的私有成员变量 
void display_information(Student &Stu)
{
 cout << Stu.name << endl ;
 cout << Stu.age << endl ; 
 cout << Stu.sex << endl ;
 cout << Stu.score << endl ;
}
int main(void)
{
 Student STU1("YYX",24,'N',86);
 display_information(STU1);
 return 0 ;
}

运行结果:

YYX
24
N
86

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对脚本之家的支持。如果你想了解更多相关内容请查看下面相关链接

相关文章

  • C++中的new/delete、构造/析构函数、dynamic_cast分析

    C++中的new/delete、构造/析构函数、dynamic_cast分析

    这篇文章主要介绍了C++中的new/delete、构造/析构函数、dynamic_cast分析 本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-05-05
  • C++ 排序插入排序实例详解

    C++ 排序插入排序实例详解

    这篇文章主要介绍了C++ 排序插入排序实例详解的相关资料,需要的朋友可以参考下
    2017-06-06
  • C++实现LeetCode(112.二叉树的路径和)

    C++实现LeetCode(112.二叉树的路径和)

    这篇文章主要介绍了C++实现LeetCode(112.二叉树的路径和),本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下
    2021-07-07
  • C++关于const与引用的分析讲解

    C++关于const与引用的分析讲解

    Const 是C++中常用的类型修饰符,常类型是指使用类型修饰符const说明的类型,常类型的变量或对象的值是不能被更新的,引用变量是一个别名,也就是说,它是某个已存在变量的另一个名字。一旦把引用初始化为某个变量,就可以使用该引用名称或变量名称来指向变量
    2022-04-04
  • C++设计模式编程中的迭代器模式应用解析

    C++设计模式编程中的迭代器模式应用解析

    这篇文章主要介绍了C++设计模式编程中的迭代器模式应用解析,迭代器模式注重对集合中元素的遍历而不使其暴露,需要的朋友可以参考下
    2016-03-03
  • C++ 基数排序的实现实例代码

    C++ 基数排序的实现实例代码

    这篇文章主要介绍了C++ 基数排序的实现实例代码的相关资料,这里附有实例代码,帮助大家学习理解,需要的朋友可以参考下
    2016-11-11
  • 详解C语言初阶基础

    详解C语言初阶基础

    这篇文章主要介绍了C语言中的初阶基础,介绍了其相关概念,具有一定参考价值。需要的朋友可以了解下,希望能够给你带来帮助
    2021-11-11
  • 探讨C语言的那些小秘密之断言

    探讨C语言的那些小秘密之断言

    我尽可能的把我所理解的断言的使用讲解清楚,希望我在此所讲的断言能够对你有所帮助,让你以后能够在代码中灵活使用断言
    2013-09-09
  • C++函数模板学习示例教程指南

    C++函数模板学习示例教程指南

    这篇文章主要为大家介绍了C++函数模板学习示例教程指南,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-04-04
  • 一篇文章带你了解C++中的显示转换

    一篇文章带你了解C++中的显示转换

    这篇文章主要介绍了C++11显示类型转换的优点,帮助大家更好的理解和学习c++,感兴趣的朋友可以了解下,希望能给你带来帮助
    2021-08-08

最新评论