首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何调用继承的重载运算符<<并在派生类的输出中添加更多文本?

在C++中,可以通过重载运算符<<来实现自定义的输出格式。当我们在派生类中调用继承的重载运算符<<时,可以在输出中添加更多文本。

首先,我们需要在基类中重载运算符<<,以便在派生类中调用。假设基类名为BaseClass,重载运算符<<的函数定义如下:

代码语言:txt
复制
#include <iostream>

class BaseClass {
public:
    // 重载运算符<<
    friend std::ostream& operator<<(std::ostream& os, const BaseClass& obj) {
        os << "BaseClass Output: " << obj.someData;
        return os;
    }

protected:
    int someData = 10;
};

接下来,我们创建一个派生类DerivedClass,其中调用了继承的重载运算符<<并添加了更多文本:

代码语言:txt
复制
class DerivedClass : public BaseClass {
public:
    // 重载运算符<<并添加更多文本
    friend std::ostream& operator<<(std::ostream& os, const DerivedClass& obj) {
        // 调用基类的重载运算符<<
        os << static_cast<const BaseClass&>(obj);
        os << " DerivedClass Output: " << obj.additionalData;
        return os;
    }

private:
    std::string additionalData = "Additional Data";
};

在上述代码中,我们使用static_cast将DerivedClass对象转换为BaseClass对象,以便在派生类的输出中调用基类的重载运算符<<。

现在,我们可以使用派生类对象来测试调用继承的重载运算符<<并添加更多文本:

代码语言:txt
复制
int main() {
    DerivedClass obj;
    std::cout << obj << std::endl;
    return 0;
}

输出结果将是:

代码语言:txt
复制
BaseClass Output: 10 DerivedClass Output: Additional Data

这样,我们就成功地调用了继承的重载运算符<<并在派生类的输出中添加了更多文本。

腾讯云相关产品和产品介绍链接地址:

  • 腾讯云产品:云服务器(https://cloud.tencent.com/product/cvm)
  • 腾讯云产品:云数据库MySQL版(https://cloud.tencent.com/product/cdb_mysql)
  • 腾讯云产品:云原生容器服务(https://cloud.tencent.com/product/tke)
  • 腾讯云产品:人工智能(https://cloud.tencent.com/product/ai)
  • 腾讯云产品:物联网(https://cloud.tencent.com/product/iotexplorer)
  • 腾讯云产品:移动开发(https://cloud.tencent.com/product/mobdev)
  • 腾讯云产品:对象存储(https://cloud.tencent.com/product/cos)
  • 腾讯云产品:区块链服务(https://cloud.tencent.com/product/bcs)
  • 腾讯云产品:腾讯云游戏引擎(https://cloud.tencent.com/product/gse)
  • 腾讯云产品:腾讯云音视频解决方案(https://cloud.tencent.com/product/vod)
  • 腾讯云产品:腾讯云直播(https://cloud.tencent.com/product/live)
  • 腾讯云产品:腾讯云音视频通信(https://cloud.tencent.com/product/trtc)
  • 腾讯云产品:腾讯云音视频处理(https://cloud.tencent.com/product/mps)
  • 腾讯云产品:腾讯云音视频智能分析(https://cloud.tencent.com/product/vca)
  • 腾讯云产品:腾讯云音视频录制与回放(https://cloud.tencent.com/product/tiia)
  • 腾讯云产品:腾讯云音视频编辑(https://cloud.tencent.com/product/vedit)
  • 腾讯云产品:腾讯云音视频直播(https://cloud.tencent.com/product/lvb)
  • 腾讯云产品:腾讯云音视频认证(https://cloud.tencent.com/product/facefusion)
  • 腾讯云产品:腾讯云音视频鉴黄(https://cloud.tencent.com/product/vod)
  • 腾讯云产品:腾讯云音视频鉴政(https://cloud.tencent.com/product/vod)
  • 腾讯云产品:腾讯云音视频鉴黄鉴政(https://cloud.tencent.com/product/vod)
  • 腾讯云产品:腾讯云音视频鉴黄鉴政OCR(https://cloud.tencent.com/product/vod)
  • 腾讯云产品:腾讯云音视频鉴黄鉴政OCR语音(https://cloud.tencent.com/product/vod)
  • 腾讯云产品:腾讯云音视频鉴黄鉴政OCR语音截帧(https://cloud.tencent.com/product/vod)
  • 腾讯云产品:腾讯云音视频鉴黄鉴政OCR语音截帧人脸(https://cloud.tencent.com/product/vod)
  • 腾讯云产品:腾讯云音视频鉴黄鉴政OCR语音截帧人脸鉴黄(https://cloud.tencent.com/product/vod)
  • 腾讯云产品:腾讯云音视频鉴黄鉴政OCR语音截帧人脸鉴黄鉴政(https://cloud.tencent.com/product/vod)
  • 腾讯云产品:腾讯云音视频鉴黄鉴政OCR语音截帧人脸鉴黄鉴政OCR(https://cloud.tencent.com/product/vod)
  • 腾讯云产品:腾讯云音视频鉴黄鉴政OCR语音截帧人脸鉴黄鉴政OCR语音(https://cloud.tencent.com/product/vod)
  • 腾讯云产品:腾讯云音视频鉴黄鉴政OCR语音截帧人脸鉴黄鉴政OCR语音截帧(https://cloud.tencent.com/product/vod)
  • 腾讯云产品:腾讯云音视频鉴黄鉴政OCR语音截帧人脸鉴黄鉴政OCR语音截帧人脸(https://cloud.tencent.com/product/vod)
  • 腾讯云产品:腾讯云音视频鉴黄鉴政OCR语音截帧人脸鉴黄鉴政OCR语音截帧人脸鉴黄(https://cloud.tencent.com/product/vod)
  • 腾讯云产品:腾讯云音视频鉴黄鉴政OCR语音截帧人脸鉴黄鉴政OCR语音截帧人脸鉴黄鉴政(https://cloud.tencent.com/product/vod)

请注意,以上链接仅为腾讯云相关产品的示例,具体产品选择应根据实际需求进行。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

C++之面向对象三个基本特征

它支持按级分类概念。继承是指这样一种能力:它可以使用现有类所有功能,并在无需重新编写原来情况下对这些功能进行扩展....运算符重载函数作为 类成员函数 与 友元函数(形参必须有要求) 一般将单目运算符和复合运算符重载为成员函数 一般将双目运算符重载为友元函数;   重载双目运算符 C++构造函数重载 在一个类可以定义多个构造函数...如果在派生类没有对基类虚函数重新定义,则派生类简单地继承其直接基类虚函数。 定义一个指向基类对象指针变量,并使它指向同一类族需要调用该函数对象。...需要说明;有时在基类定义非虚函数会在派生类中被重新定义(如例12.1area函数),如果用基类指针调用该成员函数,则系统会调用对象基类部分成员函数;如果用派生类指针调用该成员函数,则系统会调用派生类对象成员函数...它作用只是定义了一个虚函数名,具体功能留给派生类添加。 使用虚函数,系统要有一定空间开销。

1.1K60

封装、继承、多态、重载:C++强大特性与代码设计

成员声明列表包含类成员变量以及成员函数,是派生类新增成员。 “:”是一个运算符,表示基类和派生类之间继承关系。...C++继承有以下几种类型: 公有继承(public inheritance):派生类继承了基类公有成员和保护成员,并且这些成员在派生类访问权限与基类一样。...通过继承派生类可以继承基类接口和实现,并且可以添加自己功能或修改基类行为。 继承是面对对象主要特性之一,它使一个类可以从现有类中派生,而不必重新定义一个类。...C++多态性主要通过虚函数(virtual function)和运行时类型识别(runtime type identification)两个机制来实现: 虚函数:在基类声明虚函数,并在派生类中进行重写...多态实现 静态绑定:在编译期决定 函数重载 运算符重载 模板 动态绑定:在程序运行时执行 虚函数 虚函数概念: 在基类冠以关键字virtual成员函数 定义: virtual函数类型

39110
  • c#多态学习总结

    分别为: 函数重载运算符重载运算符重载后续讨论,这里讨论函数重载。英文是overload,和c++基本类似。 重载有一点是特别注意:不能通过返回值来重载,只能通过函数参数进行重载。...* 说白了,子类调用Draw()使用是调用了基类Draw().并没有实现多态功能 如果使用上面的宏定义 输出是 画一个长方形 执行基类画图任务 画一个三角形 执行基类画图任务 画一个圆形...覆盖父类中用 virtual 申明虚方法时, * 实例化父类调用该方法,执行时调用是父类虚方法 * * override是重写,即将基类方法在派生类里直接抹去重新写,故而调用方法就是子类方法...静态多态性:编译时发生函数响应(调用); 动态多态性:运行时发生函数响应。 静态绑定(早期绑定):编译时函数和对象连接机制。两种技术实现静态多态性:函数重载/运算符重载。...3.2、函数重载:在同一范围内对相同函数名有多个定义,可以是参数类型或参数个数不同,但不许只有返回值类型不同。 运算符重载,这个后续在讨论。

    82320

    C++面向对象程序设计

    不要滥用运算符重载 ---- 4.5.2 左移运算符重载 ---- 作用:可以输出自定义数据类型 注意 :一般使用全局函数实现 示例 //全局函数实现左移重载 #include ...(){ point_son p1(10); //继承调用基类构造函数,再调用派生类构造函数,析构顺序与构造相反 return 0; } 总结:继承调用基类构造函数...,再调用派生类构造函数,析构顺序与构造相反 ---- 4.6.6 继承同名成员处理方式 ---- 问题:当派生类与基类出现同名成员,如何通过派生类对象,访问到派生类或基类同名数据呢?...问题:继承同名静态成员在派生类对象上如何进行访问?...> 文件类型分为两种: 文本文件 - 文件以文本ASCII码形式存储在计算机 二进制文件 - 文件以文本二进制形式存储在计算机,用户一般不能直接读懂它们 ---- 5.1文本文件 -

    41150

    C++面向对象程序设计

    不要滥用运算符重载 ---- 4.5.2 左移运算符重载 ---- 作用:可以输出自定义数据类型 注意 :一般使用全局函数实现 示例 //全局函数实现左移重载 #include ...(){ point_son p1(10); //继承调用基类构造函数,再调用派生类构造函数,析构顺序与构造相反 return 0; } 总结:继承调用基类构造函数...,再调用派生类构造函数,析构顺序与构造相反 ---- 4.6.6 继承同名成员处理方式 ---- 问题:当派生类与基类出现同名成员,如何通过派生类对象,访问到派生类或基类同名数据呢?...问题:继承同名静态成员在派生类对象上如何进行访问?...> 文件类型分为两种: 文本文件 - 文件以文本ASCII码形式存储在计算机 二进制文件 - 文件以文本二进制形式存储在计算机,用户一般不能直接读懂它们 ---- 5.1文本文件 -

    1.2K10

    C++查缺补漏

    公有继承(public) 继承访问控制 基类public和protected成员:访问属性在派生类中保持不变 基类private成员:不可直接访问 访问权限 派生类成员函数:可以直接访问基类...成员 通过派生类对象:不能直接访问从基类继承任何成员 保护继承(protected) 继承访问控制 基类public和protected成员:都以protected身份出现在派生类 基类private...不需要显式地调用基类析构函数,系统会自动隐式调用 先执行派生类析构函数函数体,再调用基类析构函数 访问从基类继承成员 当派生类与基类中有相同成员时: 若未特别限定,则通过派生类对象使用派生类同名成员...注意: 在第一级继承时就要将共同基类设计为虚基类 虚基类及其派生类构造函数 建立对象时所指定类称为最远派生类 虚基类成员是由最远派生类构造函数通过调用虚基类构造函数进行初始化 在整个继承结构...++、--除外) 至少应该有一个自定义类型参数 后置单目运算符 ++和--重载函数,形参列表要增加一个int,但不必写形参名 如果在运算符重载函数需要操作某类对象私有成员,可以将此函数声明为该类友元

    2.6K10

    C++ 重载运算符 继承 多态 (超详细)

    )双目运算符重载为成员函数 当重载运算符为双目运算符时,形参表只有一个参数作为右操作数。...(3)单目运算符重载为成员函数 此时参数表没有参数,只有当前对象作为运算符一个操作数。...(3) 友元函数重载+重载输入输出流(用稀烂用多比较重要) 在左右操作数类型不同时上述重载方式都不能正常使用,这时候就需要两个操作数,在类外重载,因类外不能直接调用,所以要把该函数声明为类友元。...用非类A类型值为类A对象赋值时(当然,这种情况下我们可以不提供相应赋值运算符重载函数,而只提供相应构造函数,如更有重载函数会优先调用重载赋值运算符)。...(2)派生类生成过程 吸收基类成员:除构造和析构函数外 改造基类成员:通过在派生类定义同名成员屏蔽基类成员在派生类中直接调用,仍可以基类指针调用同名成员 .添加新成员 (3)派生类特点 子类拥有父类除了父类构造和析构函数

    1.1K21

    C++类和对象 复习

    /cpp-classes-objects.html ---- 目录 类和结构体区别 类创建 构造/析构函数 友元函数 内联函数 类静态成员 类访问修饰符 继承 特点 基类/派生类继承 运算符/...我们不能把静态成员初始化放置在类定义,但是可以在类外部通过使用范围解析运算符 :: 来重新声明静态变量从而对它进行初始化,如下面的实例所示。...<< Rect.getCost(area) << endl; return 0; } ---- 运算符/函数重载调用一个重载函数或重载运算符时,编译器通过把所使用参数类型与定义参数类型进行比较...选择最合适重载函数或重载运算符过程,称为重载决策。...在派生类重新定义基类定义虚函数时,会告诉编译器不要静态链接到该函数。 我们想要是在程序任意点可以根据所调用对象类型来选择调用函数,这种操作被称为动态链接,或后期绑定。

    55030

    【C++篇】灵动之韵:C++多态之舞,赋予代码生命艺术

    典型例子包括函数重载运算符重载和模板。 运行时多态(动态多态):在程序运行期间决定调用函数。主要通过虚函数(virtual function)机制实现。...这样,任何派生类都可以重写这个函数,并在运行时通过基类指针或引用调用派生类实现。...2.5 覆盖、隐藏与重载(易混淆点解析) 在多态,理解覆盖、隐藏和重载区别非常重要: 覆盖(Override):派生类重新定义基类声明为 virtual 函数,函数签名相同。...这种返回值变化称为协变(Covariance)。 2.6.2 协变使用示例 协变通常用于在继承关系,返回更加具体派生类类型,从而让调用者能够获得更加明确对象类型。...然而,多态神奇远不止于此。接下来,我们将一起深入探讨多态背后实现原理,揭开虚函数表(VTable)如何实现动态绑定奥秘,以及如何在多重继承复杂关系应对多态挑战。

    17310

    C++ 类、继承重载《Rice C++ 学习开发》

    作者有个自己想法,如果C语言编写开发,能把面向对象思想添加进去,可以让代码更加美观,更加简洁,特别是代码复用。要让代码实现《高内聚、低耦合》,这样写代码才比较有意义。...因此基类成员如果不想被派生类成员函数访问,则应在基类声明为 private。...2.基类重载运算符。 3.基类友元函数。 继承类型:当一个类派生自基类,该基类可以被继承为 public、protected 或 private 几种类型。...当使用不同类型继承时,遵循以下几个规则: 公有继承(public):当一个类派生自公有基类时,基类公有成员也是派生类公有成员,基类保护成员也是派生类保护成员,基类私有成员不能直接被派生类访问...当您调用一个重载函数或重载运算符时,编译器通过把您所使用参数类型与定义参数类型进行比较,决定选用最合适定义。选择最合适重载函数或重载运算符过程,称为重载决策。

    64110

    【C++】自学终极笔记

    继承 16.1 基本知识 继承派生类(子类)继承基类(父类)成员函数和数据成员,并在此基础上可以构建自己成员函数和数据成员。...public成员,不能访问private、protected成员 不管哪种继承方式,父类私有成员都不可以访问 派生类构造: 会依次调用父类构造函数,析构与构造顺序相反。...这确保在使用基类指针指向派生类对象时,可以正确调用派生类析构函数,避免内存泄漏。 纯虚函数: 纯虚函数本身在基类没有具体实现,而是在派生类中被强制要求实现。...; return 0; } ⛳️第十八章 运算符重载 18.1 基本知识 运算符重载 优先级和结合性、操作个数保持不变。...不能重载运算符:点操作(.)、域操作(::)、条件操作符(?)

    22310

    一文让你学完C++,干货收藏!!!

    << 运算符重载输出内置类型(整型、浮点型、double 型、字符串和指针)数据项。 流插入运算符 << 在一个语句中可以多次使用,如上面实例中所示,endl 用于在行末添加一个换行符。...当您调用一个重载函数或重载运算符时,编译器通过把您所使用参数类型与定义参数类型进行比较,决定选用最合适定义。选择最合适重载函数或重载运算符过程,称为重载决策。...在派生类重新定义基类定义虚函数时,会告诉编译器不要静态链接到该函数。 我们想要是在程序任意点可以根据所调用对象类型来选择调用函数,这种操作被称为动态链接,或后期绑定。...让我们举一个现实生活真实例子,比如一台电视机,可以打开和关闭、切换频道、调整音量、添加外部组件(如喇叭、录像机、DVD 播放器),但是我们不知道它内部实现细节,也就是说,我们并不知道它是如何通过缆线接收信号...cout << "Hello C++" <<endl; return 0; } 在这里,暂时不需要理解 cout 是如何在用户屏幕上显示文本

    3.3K20

    一文让你学完C++,干货收藏!!!

    << 运算符重载输出内置类型(整型、浮点型、double 型、字符串和指针)数据项。 流插入运算符 << 在一个语句中可以多次使用,如上面实例中所示,endl 用于在行末添加一个换行符。...当您调用一个重载函数或重载运算符时,编译器通过把您所使用参数类型与定义参数类型进行比较,决定选用最合适定义。选择最合适重载函数或重载运算符过程,称为重载决策。...在派生类重新定义基类定义虚函数时,会告诉编译器不要静态链接到该函数。 我们想要是在程序任意点可以根据所调用对象类型来选择调用函数,这种操作被称为动态链接,或后期绑定。...让我们举一个现实生活真实例子,比如一台电视机,可以打开和关闭、切换频道、调整音量、添加外部组件(如喇叭、录像机、DVD 播放器),但是我们不知道它内部实现细节,也就是说,我们并不知道它是如何通过缆线接收信号...<< "Hello C++" <<endl; return 0;} 在这里,暂时不需要理解 cout 是如何在用户屏幕上显示文本

    2.3K20

    一文让你学完C++,干货收藏!!!

    << 运算符重载输出内置类型(整型、浮点型、double 型、字符串和指针)数据项。 流插入运算符 << 在一个语句中可以多次使用,如上面实例中所示,endl 用于在行末添加一个换行符。...当您调用一个重载函数或重载运算符时,编译器通过把您所使用参数类型与定义参数类型进行比较,决定选用最合适定义。选择最合适重载函数或重载运算符过程,称为重载决策。...在派生类重新定义基类定义虚函数时,会告诉编译器不要静态链接到该函数。 我们想要是在程序任意点可以根据所调用对象类型来选择调用函数,这种操作被称为动态链接,或后期绑定。...让我们举一个现实生活真实例子,比如一台电视机,可以打开和关闭、切换频道、调整音量、添加外部组件(如喇叭、录像机、DVD 播放器),但是我们不知道它内部实现细节,也就是说,我们并不知道它是如何通过缆线接收信号...<< "Hello C++" <<endl; return 0; } 在这里,暂时不需要理解 cout 是如何在用户屏幕上显示文本

    3K3029

    2W五千字C++基础知识整理汇总

    << 运算符重载输出内置类型(整型、浮点型、double 型、字符串和指针)数据项。 流插入运算符 << 在一个语句中可以多次使用,如上面实例中所示,endl 用于在行末添加一个换行符。...当您调用一个重载函数或重载运算符时,编译器通过把您所使用参数类型与定义参数类型进行比较,决定选用最合适定义。选择最合适重载函数或重载运算符过程,称为重载决策。...在派生类重新定义基类定义虚函数时,会告诉编译器不要静态链接到该函数。 我们想要是在程序任意点可以根据所调用对象类型来选择调用函数,这种操作被称为动态链接,或后期绑定。...让我们举一个现实生活真实例子,比如一台电视机,可以打开和关闭、切换频道、调整音量、添加外部组件(如喇叭、录像机、DVD 播放器),但是我们不知道它内部实现细节,也就是说,我们并不知道它是如何通过缆线接收信号...cout << "Hello C++" <<endl; return 0; } 在这里,暂时不需要理解 cout 是如何在用户屏幕上显示文本

    2.6K10

    ☀️ 学会编程入门必备 C# 最基础知识介绍(五)——方法、封装、继承、多态

    静态多态性 函数重载 C# 运算符重载 运算符重载实现 可重载和不可重载运算符 动态多态性 总结???? 前言????...分别为: 函数重载 运算符重载 ---- 函数重载 可以在同一个范围内对相同函数名有多个定义。函数定义必须彼此不同,可以是参数列表参数类型不同,也可以是参数个数不同。...您可以重定义或重载 C# 内置运算符。...,它会产生下列结果: Box1 体积: 210 Box2 体积: 1560 Box3 体积: 5400 ---- 可重载和不可重载运算符 下表描述了 C# 运算符重载能力: 运算符...:, ->, new, is, sizeof, typeof 这些运算符不能被重载 实例 针对上述讨论,让我们扩展上面的实例,重载更多运算符: 实例 using System; namespace

    91620

    【C++篇】继承之韵:解构编程奥义,感悟面向对象至高法则

    并且函数重载是同一作用域,而这里基类和派生类时两个作用域 3.2 派生类默认成员函数 在 C++ ,当我们不显式定义类构造函数、拷贝构造函数、赋值运算符和析构函数时,编译器会自动为我们生成这些函数...这种调用顺序确保基类成员在派生类构造之前就已经被正确初始化。 3.2.2 拷贝构造函数与赋值运算符调用派生类对象被拷贝时,基类拷贝构造函数会先被调用,然后才是派生类拷贝构造函数。...同样,赋值运算符调用顺序也遵循这一规则:基类赋值运算符会先于派生类赋值运算符调用。...在拷贝构造和赋值操作过程,基类部分总是优先于派生类部分进行初始化或赋值操作。为了保证派生类对象完整性,派生类拷贝构造函数和赋值运算符必须调用基类相应函数,确保基类成员正确处理。...总结 通过本篇文章学习,我们深入了解了 C++ 中继承基本概念、继承方式对成员访问影响、对象赋值转换机制,以及如何处理同名成员隐藏问题。

    9310

    大学C++课程提炼概括【C++笔记】

    :"条件运算符 这五个不可重载 //重载不会改变运算符优先级 //重载双目运算符 "==" ">" "<" //要构建一个String 类,重载函数以友元函数形式出现在类,双目符重载函数作为成员函数报错...类型,private不变 //在基类、派生类是一种public般存在 //在类外,是private般存在 }; //多重继承派生类构造函数(构造函数参数表写法) //格式如下...:解决多继承存在二义性 //例子:A派生B、A派生C、D继承了B、C ,此时A成员都public,在D修改a成员数据,存在一个二义性,修改是从B还是从C继承过来A呢 class A class...,内容呈现动态化,一旦有新定义,就可以在该派生类中用虚函数调用 //虚函数要和基指针结合使用 //基指针:基类类型指针,可以指向基类,也可以指向由它派生类抽象而来实例,但是也只能调用基类继承过来函数...//只使用基指针调用派生类,并不会调用继承过来被覆盖结果,还是会调用在基类该函数内容 #include class Pet //基类 {public: void

    37370

    两万字总结《C++ Primer》要点

    ::: 直接调用一个重载运算符函数 data1 + data2; operator+(data1, data2); // 以上2个调用等价 14.2 输入和输出运算符   (1)重载输出运算符<< ostream...(2)继承继承是一种类联系在一起一种层次关系。这种关系,根部是基类,从基类继承而来类成为派生类。 基类负责定义在层次关系中所有类共同拥有的成员,而每个派生类定义各自特有的成员。...::: tip 派生类对象不能直接初始化基类成员。派生类应该遵循基类借口,通过调用基类构造函数来初始化从基类继承成员。...名字冲突与继承: 派生类成员将隐藏同名基类成员。 ::: tip 出了覆盖继承而来虚函数外,派生类最好不雅重用其他定义在基类名字。...派生类析构函数: 派生类函数只负责销毁由派生类自己分配资源。 15.8 容器与继承 当使用容器存放继承体系对象时,必须采用间接存储方式。因为不允许在容器中保存不同类型元素。

    2K30

    两万字总结《C++ Primer》要点

    ::: 直接调用一个重载运算符函数 data1 + data2; operator+(data1, data2); // 以上2个调用等价 14.2 输入和输出运算符 (1)重载输出运算符<< ostream...(2)继承继承是一种类联系在一起一种层次关系。这种关系,根部是基类,从基类继承而来类成为派生类。 基类负责定义在层次关系中所有类共同拥有的成员,而每个派生类定义各自特有的成员。...::: tip 派生类对象不能直接初始化基类成员。派生类应该遵循基类借口,通过调用基类构造函数来初始化从基类继承成员。...名字冲突与继承: 派生类成员将隐藏同名基类成员。 ::: tip 出了覆盖继承而来虚函数外,派生类最好不雅重用其他定义在基类名字。...派生类析构函数: 派生类函数只负责销毁由派生类自己分配资源。 15.8 容器与继承 当使用容器存放继承体系对象时,必须采用间接存储方式。因为不允许在容器中保存不同类型元素。

    1.7K20
    领券