码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 继承的构造函数


    继承的构造函数

    继承的构造函数不能初始化派生类的成员,可以使用类内初始化,或则追加构造函数

    • using声明语句只是令某个名字在当前作用域内可见。而当作用于构造函数的时候,会产生代码。
      using Base::Base;
    1. 对于基类的每个构造函数,编译器都生成一个与之对应的派生类构造函数
    2. 不会改变构造函数的控制权限,比如说基类中的构造函数时private,继承在派生类中的也是private
    3. 由于using只能指定名字,所以基类中构造函数如果存在explicit 和 constexpr关键及同样会被继承。
    4. 如果一个基类的构造函数含有默认实参,将会生成多个构造函数,其中每个构造函数分别省略掉一个含有默认实参的形参。比如基类有一个两个参数的构造函数,第二个参数为默认实参,则会参数一个两个参数的构造函数(都不是默认实参)和一个参数(第一个参数)的构造函数
    5. 默认、拷贝、移动构造函数不会被继承, 这些构造函数按照正常的规则被合成

    C++11 标准规定,继承构造函数与类的一些默认函数(默认构造、析构、拷贝构造函数等)一样,是隐式声明,如果一个继承构造函数不被相关代码使用,编译器不会为其产生真正的函数代码。这样比通过派生类构造函数“透传构造函数参数”来完成基类初始化的方式,总是需要定义派生类的各种构造函数更加节省目标代码空间。

    多继承的情况下,

    继承构造函数会出现“冲突”的情况,因为多个基类中的部分构造函数可能导致派生类中的继承构造函数的函数名与参数相同

    class A {
    public:
    	A(int i){}
    };
    
    class B {
    public:
    	B(int i){}
    };
    
    class C : public A, public B {
    public:
    	// using A::A; //编译出错,重复定义C(int)
    	// using B::B; //编译出错,重复定义C(int) 
    	
    	// 显示定义继承构造函数 C(int)
    	C(int i):A(i),B(i){}
    };
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
  • 相关阅读:
    怎么快速编辑视频
    微服务架构设计:构建高可用性和弹性的应用
    Docker网络
    记一次调试YOLOv5+DeepSort车辆跟踪项目的经过
    Java中的map集合顺序如何与添加顺序一样,LinkedHashMap,使用entrySet遍历
    【IEEE出版顺利申请中】2024年第四届电子信息工程与计算机科学国际会议(EIECS 2024)
    前端深入理解JavaScript面向对象编程与Class
    如何在 ASP.NET Core 中使用 Quartz.NET
    可防离职员工冒用身份,合合信息名片全能王与钉钉用数字名片打造安全“围栏”
    DRF-(4)
  • 原文地址:https://blog.csdn.net/weixin_43471255/article/details/125608207
  • 最新文章
  • 沪漂五周年了:我越来越迷茫了
    Agentic Skill Routing 实战:别再把所有 Skill 塞进 AI Agent 上下文
    MySQL-Seconds_behind_master的精度误差
    [MAF预定义ChatClient中间件-03]CachingChatClient——利用缓存省钱省时间
    AI的至暗历史:从万众期待到被政府撤资,AI的两次死亡徘徊
    Agent OS :五种驯服不确定性的范式
    PortSwigger SQL注入LAB11
    数据库即时编译JIT
    [Begin]AI Learn Data Day 0
    深度学习进阶(二十七)现代 LLM 的核心架构设计其二:SwiGLU
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号