继承 之 友元函数

日程安排(多继承+友元函数) //动态接收多个对象,还要比较大小,正好练习一下vector+sort...... 题目描述 已有一个日期类Date,包括三个protected成员数据year,month,day; 另有一个时间类Time,包括三个protected成员数据hour,minute,second,12小时制; 现需根据输入的日程的日期时间,安排前后顺序,为此以Date类和Time类为基类,建立一个日程类Schedule,包括以下新增成员: int ID;//日程的ID 定义友元函数bool before(con 阅读详情

     由于友元不是成员函数,所以不能使用作用域解析操作符来指出要使用哪个函数。解决方法是使用强制类型转换,以便匹配原型时能够选择正确的函数。

 

基类:
class class_a
{
 private:
    int x;
 public:
    ...
    friend std::ostream & operator<<(std::ostream & os,const class_a & rs);
    ...
};

 

std::ostream & operator<<(std::ostream & os,const class_a & rs)
{
 os<<"class_a: "<<rs.x<<std::endl;
 return os;
}

 

派生类
class class_b:public class_a
{
 private:
    int b;
 public:
    ...
    friend std::ostream & operator<<(std::ostream & os,const class_b & rs);
    ...
};

 

std::ostream & operator<<(std::ostream & os,const class_b & bs)
{
 os<<"class_a: "<<(const class_a &) bs;
 os<<"class_b b: "<<bs.b<<std::endl;
 return os;
}

    可以理解为,友元函数重载,通过强制类型转换参数来匹配函数特征标,续而调用正确的函数。

C++: 日程安排(多继承+友元函数) 题目描述 已有一个日期类Date,包括三个protected成员数据year,month,day; 另有一个时间类Time,包括三个protected成员数据hour,minute,second,12小时制; 现需根据输入的日程的日期时间,安排前后顺序,为此以Date类和Time类为基类,建立一个日程类Schedule,包括以下新增成员: int ID;//日程的ID 定义友元函数bool before(const Schedule & s1,const Schedule & . 阅读详情

相关推荐

QGIS效率提升神器:qgis_mcp插件+VSCode联合工作流配置全解析

本文详细解析了如何通过配置qgis_mcp插件与VSCode的联合工作流,实现语音控制和代码自动化来大幅提升QGIS操作效率。该方案将自然语言交互与现代编辑器生态结合,为地理信息专业人士构建了智能、高效的全新工作模式,彻底改变传统GIS操作方式。

weixin_29228203的博客 189

C++(继承,继承方式,友元,关键词)

C++(继承,继承方式,友元,关键词)

qq_41421755的博客 803

lisflood-fp(一)从源码到可执行文件:Windows下的Cmake实战编译指南

本文详细介绍了在Windows环境下使用Cmake工具编译lisflood-fp水文模型源码生成可执行文件的全过程。从开发环境配置、源码获取到实战编译,逐步指导如何解决常见错误并处理运行时依赖,最终生成可用的exe文件。特别适合水文专业研究者和工程师学习参考。

weixin_30555125的博客 481

C++继承(二)

友元关系不能被继承,也就是说基类友元不能访问子类私有保护成员基类Person有一个友元函数Display,可以访问基类的私有成员,需要注意的是函数有Student类但是这个类在后面,所以需要前置声明告诉编译器有这个东西,后面打印p._name是没问题的,但是打印stuNum就不行了,因为派生类不会继承基类的友元函数,基类的友元函数不能访问派生类的私有成员。

2302_80378107的博客 1236

数据字典实战:如何用Excel快速搭建你的第一个数据字典(附模板下载)

本文针对中小团队在软件开发中面临的术语不一致问题,提供了一套使用Excel快速搭建数据字典的实战指南。文章详细讲解了核心字段设计、填充示例、高阶技巧及团队协作维护流程,旨在通过这一轻量级工具统一团队共识、提升开发效率,并附有实用模板下载。

weixin_29303701的博客 380

实战指南:基于Windows Server构建企业级AAA认证体系

本文详细介绍了如何在Windows Server环境下构建企业级AAA认证体系,涵盖AD域服务部署、NPS服务器配置及华为设备对接实战。通过整合Radius协议与AD域账号管理,实现网络设备的统一认证与权限控制,提升企业IT安全管理效率。特别适用于需要零成本实现AAA认证的中大型企业。

weixin_28304023的博客 421

小谈继承机制

本文主要涉及单继承、多继承以及继承方法相关的知识点。

qq_43406934的博客 727

保姆级教程:用R包ggpicrust2搞定PICRUSt2功能预测,从差异分析到热图PCA一键出图

本文提供了一份详细的ggpicrust2使用指南,帮助用户从零开始完成PICRUSt2功能预测数据的差异分析和可视化。通过安装配置、数据导入、差异分析到高级可视化(如热图和PCA)的全流程讲解,即使是初学者也能快速掌握发表级图表的生成技巧。

weixin_33712987的博客 384

C++基础-友元函数和继承派生

友元函数,继承,单继承和多继承,基类和派生类,

shuaixio的博客 3838

超声波雷达探测车位及信号处理方法

在APA泊车中用到了超声波雷达,第一次接触,总结研究之。

周陽讀書 1229

一文让你轻松理解Wi-Fi理论速率计算方式

如上所示,在使用FDM的802.11协议上,最小子载波带宽为312.5KHz,那一个信道频宽为20MHz的信道可以分成64个子载波,但是由于技术原因,有效使用的是52个子载波,实际用于数据传输的只有48个,有4个子载波充当导频载波。载波:交流信号或者直流信号本身不具备数据传输能力,但是如果信号发生很小的波动或者变化,从而实现数据的收发。所谓子载波,就是将信号划为为很多的小信道,这些小信道可以实现数据的并发传输,子载波我们英文称为subcarrier,也称为音调(tone)。Symbol time如下所示。

1042484520@qq.com(邮箱) 3447

C++--继承(下)

无论派生出多少个子类,都只有一个static成员实例。

m0_74085682的博客 541

如何程序化的将 Wire 文件转换成 STEP、CATIA、DWG、NX、FBX 等格式

Wire 文件是专有格式,只有 Autodesk Alias 软件能够直接打开和编辑。 虽然可以在 Alias 软件中手动打开文件并导出为 STEP,但在实际工作中,经常会遇到需要转换数十甚至数百个文件的场景。如果每次都手动操作软件进行转换,不仅效率低下,还容易出错,批量场景下会非常麻烦。因此,程序化、自动化的转换方案变得至关重要。

weixin_44211633的博客 450

友元函数的继承

基类的友元函数仍然是派生类的友元函数 子类A继承了基类Test,同时也继承了Test的友元函数

farmwang的专栏 1804

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

友元类与友元函数的继承与传递问题

C++ Primer中有如下描述:友元关系不能被继承,基类的友元对派生类没有特殊的访问权限。     然而通过实践发现,VS编译器并没有安装上述描述来处理,下面的规则与上述描述相悖,却符合VS编译器的处理规则。     注:有待通过g++编译器来验证。 1 友元类的继承问题 1.1一个友元类的派生类,可以通过其基类接口去访问设置其基类为友元类的类的私有成员,也就是说一个类的友元类的

不是码农 2万+

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

c++基类友元函数的继承问题

primer上明确说,友元是不能继承的。 但是,若是使用派生类实参为基类实参复制,这种情况下还是可以成功执行友元函数的。   代码如下: #include      //③验证友元的继承 using namespace std; class A { public:  friend void f(A *p);  A()    {   n=0;  }  virtual v

hemeinvyiqiluoben的专栏 3488

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

公有继承、私有继承、继承下的静态成员与友元函数

私有继承:要表示类之间“用.....来实现”的关系,可以选择是通过私有继承实现。//只有在公共继承下,才能成立两个语句,将Base对象中的Object的地址赋值。在基类与派生类中都设置友元函数,才能分别访问基类和派生类的私有成员,并不是在一个中设计,两者都能访问。私有继承在编码过程中就要指定具体的父类,其关系在编译期就确定,而组合的关系一般在运行时确定。在对象分析时明确具有“有一个”或“用.....来实现”关系,使用组合和私有继承。继承与静态成员,静态成员只有一个,所有对象共享(包括基类对象和派生类对象)

m0_51918781的博客 254

c++ 友元函数 / 继承和派生

重载运算符 //重载+运算符 const Integer operator+(const Integer & other) const; const Integer operator-(const Integer & other) const; const Integer operator*(const Integer & other) const; const Integer operator/(const Integer & other) const; const Int

weixin_44121207的博客 989

【C++OJ多重继承与虚拟继承】日程安排(多继承+友元函数)

D. 日程安排(多继承+友元函数) 题目描述 已有一个日期类Date,包括三个protected成员数据year,month,day; 另有一个时间类Time,包括三个protected成员数据hour,minute,second,12小时制; 现需根据输入的日程的日期时间,安排前后顺序,为此以Date类和Time类为基类,建立一个日程类Schedule,包括以下新增成员: int ID;//日程的ID 定义友元函数bool before(const Schedule & s1,const Sch

weixin_43209177的博客 522

C++赋值运算符重载为何不能重载为友元函数,为何不能被继承

C++赋值运算符重载为何不能重载为友元函数,为何不能被继承

doubleintfloat的博客 994

友元关系可以继承_C++的友元函数和友元类

C++使用类对数据进行隐藏和封装,类的数据成员一般定义为私有成员,而将提供类与外界通讯接口的成员函数定义为公有的。C++类成员的三种访问权限:public:可以被该类中的函数、子类的函数、友元函数访问,也可以由该类的对象访问;protected:可以被该类中的函数、子类的函数、友元函数访问,但不可以由该类的对象访问;private:可以被该类中的函数、友元函数访问,但不可以由子类的函数、该类的对象...

weixin_39524842的博客 1936

日程安排(多继承+友元函数)

题目描述 已有一个日期类Date,包括三个protected成员数据year,month,day; 另有一个时间类Time,包括三个protected成员数据hour,minute,second,12小时制; 现需根据输入的日程的日期时间,安排前后顺序,为此以Date类和Time类为基类,建立一个日程类Schedule,包括以下新增成员: int ID;//日程的ID 定义友元函数bool before(const Schedule & s1,const Schedule & s2)

last_cancel的博客 734

c++ 在类的继承当中,友元函数访问权限问题

最近在准备考研,专业课中涉及到一些c++知识,就此总结。 结论:在类的继承当中,友元函数的访问权限与本类保持一致。 程序如下: #include <iostream> using namespace std; /* 结论: 在类的继承当中,友元函数的访问权限与本类保持一致。 */ void son_friend() ; void father_friend(); class father { public: father() {}; friend void father_fr

weixin_44525754的博客 465

类的三种继承方式可访问性和友元函数.cpp

/*类的三种继承方式可访问性和友元函数 */# include using namespace std;class A{        friend int get(const A& a);//声明该函数为A的友元函数,使之可以在外部访问A,友元函数也可以继承public:    A():x_(11),y_(22),z_(33){}  int& getx()  {      return x_;

东哥的博客 596
上一篇: 继承 之 动态内存分配
下一篇: 继承 之 能否被继承
TypeCool
博客等级 码龄22年 58粉丝 93原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值