C++子类操作符重载

 

复制代码
#include<iostream>
#include<string>

class Base { 
public:
    Base(const std::string& name,int age):m_name(name),m_age(age) { }
    //输出操作符重载
    friend std::ostream& operator<<(std::ostream& os, const Base& h) {  //基类操作符重载
        os << h.m_name << "," << h.m_age ;
        return os;
    }
    
private:
    std::string m_name;
    int m_age;
  
 };

class Derived :public Base {
public:
    Derived(const std::string& name, int age,int no):Base(name,age),m_no(no){}
    
    //子类操作符重载
    friend std::ostream& operator<<(std::ostream& os, const Derived& t) {  
        os << (Base&)t << ',' << t.m_no ;
        //(Base&)t   调用基类的重载函数
        return os;
    }

private:
    int m_no;
 };

int main()
{
    Derived d("李明", 52,10010);
        
    std::cout << d << std::endl;
    return 0;
}
复制代码

 

 

 

posted @   天子骄龙  阅读(445)  评论(0编辑  收藏  举报
编辑推荐:
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示