iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >C++中类的友元机制是什么
  • 161
分享到

C++中类的友元机制是什么

2023-06-06 11:06:18 161人浏览 安东尼
摘要

这篇文章主要为大家详细介绍了c++中类的友元机制是什么,文中示例代码介绍的非常详细,具有一定的参考价值,发现的小伙伴们可以参考一下:类的友元  友元是C++提供的一种破坏数据封装和数据隐藏的机制。  通过将一个模块声明为另一个模块的友元,一

这篇文章主要为大家详细介绍了c++中类的友元机制是什么,文中示例代码介绍的非常详细,具有一定的参考价值,发现的小伙伴们可以参考一下:

类的友元

  友元是C++提供的一种破坏数据封装和数据隐藏的机制。

  通过将一个模块声明为另一个模块的友元,一个模块能够引用到另一个模块中本是被隐藏的信息。可以使用友元函数和友元类。

  为了确保数据的完整性,及数据封装与隐藏的原则,建议尽量不使用或少使用友元。

友元函数

  友元函数是在类声明中由关键字friend修饰说明的非成员函数,在它的函数体中能够通过对象名访问 private 和protected成员

  作用:增加灵活性,使程序员可以在封装和快速性方面做合理选择。

  访问对象中的成员必须通过对象名。

举例说明:使用友元函数计算两点间的距离

#include <iOStream>#include <cmath>using namespace std;class Point{//Point类声明  public: //外部接口    Point(int x=0, int y=0) : x(x), y(y) { }    int getX() { return x; }    int getY() { return y; }    friend float dist(Point &a, Point &b);  private: //私有数据成员    int x, y;};float dist( Point& a, Point& b){  double x = a.x - b.x;  double y = a.y - b.y;  return static_cast<float>(sqrt(x * x + y * y));}int main(){  Point p1(1, 1), p2(4, 5);  cout <<"The distance is: ";  cout << dist(p1, p2) << endl;  return 0;}

友元类

  若一个类为另一个类的友元,则此类的所有成员都能访问对方类的私有成员。

  声明语法:将友元类名在另一个类中使用friend修饰说明。

C++中类的友元机制是什么

类的友元关系是单向的

  如果声明B类是A类的友元,B类的成员函数就可以访问A类的私有和保护数据,但A类的成员函数却不能访问B类的私有、保护数据。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程网。

--结束END--

本文标题: C++中类的友元机制是什么

本文链接: https://www.lsjlt.com/news/246609.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • C++中类的友元机制是什么
    这篇文章主要为大家详细介绍了C++中类的友元机制是什么,文中示例代码介绍的非常详细,具有一定的参考价值,发现的小伙伴们可以参考一下:类的友元  友元是C++提供的一种破坏数据封装和数据隐藏的机制。  通过将一个模块声明为另一个模块的友元,一...
    99+
    2023-06-06
  • C++中友元是什么意思
    这篇文章将为大家详细讲解有关C++中友元是什么意思,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。一.友元函数友元函数可以是普通函数或者类成员函数。先看普通函数声明为友元函数:如下所示:#include&n...
    99+
    2023-06-29
  • C++中的友元函数与友元类详情
    目录一、问题背景二、友元函数三、友元类一、问题背景 对类的封装是C++三大特性中的一个重要特性,封装好的数据在类的外部是访问不到的但是一旦出了问题,想要操作被封装的数据怎么办呢?由此...
    99+
    2024-04-02
  • C++ 函数的友元机制详解
    c++++ 友元机制允许非成员函数或类访问其他类的私有或保护成员,以实现以下目的:允许非成员函数访问私有成员允许成员函数访问其他类的私有成员允许类成员函数访问另一个类的私有成员 C++...
    99+
    2024-04-18
    c++ 友元机制
  • C++中友元函数与友元类的示例分析
    小编给大家分享一下C++中友元函数与友元类的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!一、问题背景对类的封装是C++三大特性中的一个重要特性,封装好的...
    99+
    2023-06-29
  • C++中任何事与友元函数和友元类
    本篇文章为大家展示了C++中任何事与友元函数和友元类,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。友元可以是一个函数,该函数被称为友元函数;友元也可以是一个类,该类被称为友元类。类具有封装和信息隐藏...
    99+
    2023-06-17
  • C++的友元和虚函数是什么
    这篇文章主要介绍了C++的友元和虚函数是什么的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇C++的友元和虚函数是什么文章都会有所收获,下面我们一起来看看吧。友元可以是一个函数,该函数被称为友元函数;友元也可以是...
    99+
    2023-06-17
  • C++友元函数的作用是什么
    C++友元函数的作用是允许一个函数访问一个类的私有成员和保护成员。通常情况下,只有类的成员函数可以访问类的私有成员和保护成员,但是有...
    99+
    2023-10-11
    C++
  • C++的对象特性和友元是什么
    这篇文章主要介绍了C++的对象特性和友元是什么的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇C++的对象特性和友元是什么文章都会有所收获,下面我们一起来看看吧。对象特征构造函数和析构函数对象的初始化和清理也是两...
    99+
    2023-06-29
  • C++ 友元函数详解:友元函数在模板类中的使用?
    在 c++++ 中,友元函数可以访问类的私有成员,而无需成为该类的成员函数。在模板类中,友元函数的声明与普通类中的声明类似,且必须在类的定义外部进行声明。例如,要在模板类 myclass...
    99+
    2024-04-29
    c++ 友元函数
  • C++ 友元函数详解:友元函数在特殊类中的应用(如抽象类、虚基类)?
    友元函数允许访问类私有和受保护成员,对于特殊类(抽象类、虚基类)交互至关重要。在抽象类中,友元函数可访问私有成员,即使抽象类本身不能实例化。在虚基类中,友元函数可解决菱形问题,明确继承自...
    99+
    2024-04-30
    c++ 友元函数
  • C++ 友元函数详解:友元函数和类模板的交互?
    友元函数可访问类的私有成员,通过在类声明中使用 friend 声明。类模板允许创建通用类和友元函数,适用于不同类型数据。实战案例中,友元函数模板 printdata() 可打印任何类型 ...
    99+
    2024-04-30
    c++ 友元函数 封装性
  • C++ 函数的友元机制如何打破封装性?
    c++++ 中,友元机制打破封装,允许函数或类访问其他类的私有成员。通过使用 friend 关键字,可将函数声明为某个类的友元,从而访问其私有数据和方法。友元机制常用于解决类之间的循环依...
    99+
    2024-04-11
    c++ 函数的友元机制 封装性
  • C++ 函数可以声明为友元函数吗?友元函数的特性是什么?
    是的,c++++ 函数可以声明为友元函数。友元函数具有以下特性:可以访问类的私有和受保护成员。不能直接访问类的 this 指针。可以定义在类的作用域之外。不是类的成员函数,不属于类的接口...
    99+
    2024-04-19
    c++ 友元函数 作用域
  • c++中的类实现了什么机制
    类是 c++ 中封装数据的强大机制,提供数据抽象、对象、继承、多态和封装等关键机制,有助于增强程序的可重用性、模块化、安全性,并支持面向对象编程范例。 C++ 中类的机制 类是 C++...
    99+
    2024-05-06
    c++
  • C++类和对象中友元函数怎么使用
    这篇文章主要介绍“C++类和对象中友元函数怎么使用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“C++类和对象中友元函数怎么使用”文章能帮助大家解决问题。友元用到关键字 friend浅解概念举一个非...
    99+
    2023-07-02
  • C++ 友元函数详解:如何限制友元函数的访问权限?
    c++++ 中友元函数可以通过访问说明符或名称空间限制访问权限,以实现仅允许特定函数或特定命名空间内的函数访问类的私有成员。 C++ 友元函数详解:如何限制友元函数的访问权限? 在 C...
    99+
    2024-04-29
    c++ 友元函数
  • C++中的派生机制是什么
    这篇文章主要介绍“C++中的派生机制是什么”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“C++中的派生机制是什么”文章能帮助大家解决问题。一、派生的类型C++支持以下几种派生类型:公有派生: 在公有...
    99+
    2023-07-06
  • java中各类锁的机制是什么
    这篇文章给大家分享的是有关java中各类锁的机制是什么的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。前言总结java常见的锁区分各个锁机制以及如何使用使用方法锁名考察线程是否要锁住同步资源乐观锁和悲观锁锁住同步资...
    99+
    2023-06-22
  • C++的友元和内部类你了解吗
    目录友元函数案例友元类内部类总结友元分为:友元函数 和 友元类 友元提供了一种突破封装的方式,有时提供了便利。但是友元会增加耦合度,破坏了封装,所以友元不宜多用。...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作