首页 > 编程语言 >C++ 派生类赋值运算符应显示调用

C++ 派生类赋值运算符应显示调用

时间:2024-09-14 23:13:31浏览次数:12  
标签:Derive obj C++ 运算符 Base 派生类 operator d1

struct Base
{
    double x{ 111.1 };
};

struct Derive :public Base
{
    double y{ 222.2 };
    Derive& operator=(const Derive& obj)
    {
        if (&obj == this)
        {
            return *this;
        }
        Base::operator=(obj); // 显示调用基类operator=
        // 酌情处理自赋值的问题
        y = obj.y;
        return *this;
    }
};


int main()
{
    Derive d;
    d.x = 1.1;
    d.y = 2.2;

    Derive d1;
    d1.x = 3.3;
    d1.y = 5.5;

    d = d1;
    cout << d.x << '\n'; // 若不显示调用基类operator=,还是1.1
    cout << d.y << '\n'; // 

    system("pause");
    return EXIT_SUCCESS;
}

输出:

3.3
5.5




参考:《C++ Primer》 P555

标签:Derive,obj,C++,运算符,Base,派生类,operator,d1
From: https://www.cnblogs.com/huvjie/p/18414829

相关文章

  • JS 扩展运算符有哪些使用场景?
    你好,我是沐爸,欢迎点赞、收藏、评论和关注。扩展运算符有哪些使用场景?直接进入正题一、复制数组consta1=[1,2];//写法一consta2=[...a1];//写法二const[...a2]=a1;二、合并数组constpart1=[1,2,3];constpart2=[4,5,6];constall=[.......
  • VSCode 配置 C/C++ 开发环境的终极指南
    在现代软件开发中,VisualStudioCode(VSCode)因其轻量级、可扩展性和强大的功能而受到广泛欢迎。对于C/C++开发者来说,配置一个高效的开发环境是至关重要的。本文将详细介绍如何在VSCode中配置C/C++开发环境,帮助你快速上手并提高开发效率。一、安装VSCode首先,你需要在你......
  • c++中的继承和多态
    目录 Linux中的管道通信​编辑派生类的默认成员函数继承  派生类的构造 隐藏如何设计一个不能被继承的类菱形继承virtualvirtual是如何解决的内存对象模型继承和组合继承组合多态概念多态的构成条件虚函数的重写Linux中的管道通信派生类的默认成员函......
  • PyCharm修改背景颜色、修改字体大小+Python常用快捷键+Python常见的运算符
    文章目录PyCharm软件的使用1.修改背景颜色和字体大小1.1修改背景颜色1.2修改字体大小2.常用的快捷键3.常见的运算符3.1算术运算符3.2赋值运算符3.3比较运算符3.4逻辑运算符PyCharm软件的使用1.修改背景颜色和字体大小1.1修改背景颜色1.2修改字体大......
  • C++:初始化列表、友元、static
    目录一、初始化列表​二、static成员三、友元函数一、初始化列表•之前我们实现构造函数时,初始化成员变量主要使用函数体内赋值,构造函数初始化还有一种方 式,就是初始化列表,初始化列表的使用方式是以⼀个冒号开始,接着是⼀个以逗号分隔的数据成员列表,每个"成员变量"后......
  • 「数学::质数」埃氏筛|欧拉筛(埃拉托斯特尼筛法|线性筛法)/ LeetCode 204(C++)
    目录概述1.埃氏筛思路复杂度Code2.欧拉筛(线性筛)思路复杂度Code总结概述上一节我们介绍了对判断一个数是否为质数的方法:「数学::质数」试除法/LuoguP5736(C++)那如果我们期望输出一个范围内的所有质数,使用试除法的时间复杂度是n√n,怎么办呢?LeetCode204:给定整......
  • 【C++基础概念理解——类的继承和嵌套】
    基本概念在C++中,类的继承和嵌套类的定义是两种不同的概念。classInitialSetupProcedure:publicStateMachine//类的继承(符号是":")classInitialSetupProcedure::StateMachine//类的嵌套(符号是"::",意思是类StateMachine嵌套在InitialSetupProcedure类中)......
  • stm32驱动HX711称重传感器 c++代码分享
    一、HX711模块介绍HX711模块是一种专门用于称重传感器的放大器模块。它的主要功能是将测得的微小电压信号放大到可以被微控制器读取的范围。HX711模块通常配合称重传感器一起使用,例如压力传感器、负载细胞等。它采用24位的模数转换器(ADC)来精确测量传感器的电压变化。HX711模块具......
  • C++ 顶层const底层const
    inti=0;int*constpl=&i;//不能改变p1的值,这是一个顶层constconstintci=42;//不能改变ci的值,这是一个顶层constconstint*p2=&ci;//允许改变p2的值,这是一个底层constconstint*constp3=p2;//靠右的const是顶层const,靠左的是底层constconstin......
  • c++临时对象导致的生命周期问题
    对象的生命周期是c++中非常重要的概念,它直接决定了你的程序是否正确以及是否存在安全问题。今天要说的临时变量导致的生命周期问题是非常常见的,很多时候没有一定经验甚至没法识别出来。光是我自己写、review、回答别人的问题就犯了或者看到了许许多多这类问题,所以我想有必要......