在一个类中可以包含多个构造函数,但是对于每一个对象来说,建立对象时只执行其中一个,并非每个构造函数都被执行。
带默认参数的构造函数使用默认参数值来初始化类的成员变量。关于带有默认参数值的构造函数有两点需注意的;

1、当函数中定义了带有默认值的构造函数,参数默认值是在类里面给定的而不是在类外指定。如果声明时没有定义是默认参数构造函数,那么当在类外定义为默认参数构造函数时会出现如下错误;错误:在重新声明时添加默认参数使此构造函数成为默认构造函数。

2、当函数中定义了带有默认值的构造函数,在进行构造函数重载时,就不能任意的进行重载。当有指定类全部成员变量的默认参数值时定义了其他构造函数,比如说无参构造函数,带有1个或者不同参数个数的构造函数,因为这样会造成构造函数调用时发生歧义,编译器不知道用哪个构造函数。如下代码所示:

类中有两构造函数,一个带默认值,一个不带任何参数。在定义类对象是对于带默认值构造函数可以给定一个实参或几个实参也可以都不给,如 count_frame f;  那么此时将会出现构造函数调用冲突,编译器不知道调用哪个,对于count_frame f,构造函数可以是无参数的count_frame(),也可以是上面一连串带默认参数的构造函数。因此将会出现如下错误:

带有默认参数值的构造函数相关推荐

  1. C++之带有默认参数值的构造函数

    在一个类中 ,如果程序员没有写,任何一个构造函数,则编译器将为该类提供一个默认的构造函数,如果程序员对类的构造函数进行了重载,则编译器将不提供默构造函数,这里需要手动书写一个无参的构造函数, 无参的构 ...

  2. 一个程序掌握C++带参构造函数、带有默认参数的构造函数【C++类的经典使用案例】

    文章目录 一.C++带普通参数的构造函数 二.带有默认参数的构造函数 一.C++带普通参数的构造函数 #include <iostream> using namespace std;cla ...

  3. 【C++】3-1.19 带有默认参数值的函数

    [C++]3-1.19 带有默认参数值的函数 1.定义函数的默认参数值 2.调用带有默认参数的函数 3.关于默认值函数的规定 1.定义函数的默认参数值 c++允许定义带默认参数值的函数,但参数列表中的 ...

  4. Java是否支持默认参数值?

    我遇到了一些具有以下结构的Java代码: public MyParameterizedFunction(String param1, int param2) {this(param1, param2, ...

  5. scala中命名参数函数_Scala中的命名参数和默认参数值

    scala中命名参数函数 In this post, we are going to discuss the following two important concepts in Scala abo ...

  6. C++学习笔记-----永远不要在派生类中改变虚函数的默认参数值

    提到虚函数,我们就会自然而然的想到多态,但是当虚函数中存有默认参数值的时候,在派生类中重定义这个虚函数时不可以改变这个参数的值. 请看下面的例子: #include "stdafx.h&qu ...

  7. 【Groovy】循环控制 ( Java 语法循环 | 默认的 IntRange 构造函数 | 可设置翻转属性的 IntRange 构造函数 | 可设置是否包含 to 的构造函数 | 0..9 简写 )

    文章目录 一.使用 Java 语法循环 二.使用 IntRange 循环 1.使用默认的 IntRange 构造函数 2.使用可设置翻转属性的 IntRange 构造函数 3.使用可设置是否包含 to ...

  8. js中对函数设置默认参数值的3种方法

    在javascript中如何为函数设置默认参数值,下面提供几种方法供大家参考. 第一种方法: function example(a,b){ var a = arguments[0] ? argumen ...

  9. C++使用默认参数的构造函数

    如果在创建对象的时候,没有传递实参给该参数p,则该参数会被默认设置为5.0.  book(char* a, double p = 5.0); #include<iostream> usin ...

最新文章

  1. 遍历dict的items输出tuple类型
  2. 31行代码AC——PTA 求二叉树的叶子结点个数 (20分)——解题报告
  3. 第十一节:基于MVC5+Spring.Net+EF+Log4net 传统的一种搭建模式
  4. 阿里技术专家光锥:亿级长连网关的云原生演进之路
  5. 利用模板引擎配合ajax进行数据的导入
  6. (转)编码剖析Spring装配基本属性的原理
  7. git 2015-5-26
  8. 提现php防刷,PHP简单的防刷计数器–已经图片化
  9. 学python还是labview_Labview个人感受
  10. ftp连接显示被服务器被拒绝,ftp连接显示被服务器被拒绝
  11. web前端开发流程图,118页Vue面试题总结,完整PDF
  12. 软件系统服务器改造方案,并实施系统软件国产化改造方案 审计署.doc
  13. 解决IAR编译警告Warning[Pa089]: enumerated type mixed with another enumerated type
  14. 基于HuTool工具实现Excel复杂表头生成、单元格合并绘制对角线(计算N叉树的最大深度和最大宽度)
  15. 洛谷-P1957-口算练习题
  16. 20155313 杨瀚 《网络对抗技术》实验一 PC平台逆向破解(5)M
  17. 看雪CTF.TSRC 2018 团队赛 第一题 初世纪 writeup
  18. adb ps shell 查看进程_adb中ps命令的详解
  19. 2023年南京大学软件工程考研上岸必看复习经验
  20. 概率论与数理统计复习

热门文章

  1. MSP430单片机在3V与5V混合系统中的逻辑接口技术
  2. 在Discuz论坛安装出现乱码时
  3. 计算机蓝屏代码的含义
  4. 【Verilog】跨时钟域设计Clock Domain Crossing Design(Multi cycle path formulation with feedback acknowledge)
  5. linux电脑mac地址修改不了怎么办,linux下修改MAC地址问题解决方法
  6. The table ‘xxxx‘ is full
  7. oracle 所有句型,[转载]7分写作必备句型 3
  8. 【Qt】disconnect一个lambda匿名函数
  9. 跳舞遇到这五种人,请珍惜!入门舞感的四点必看!
  10. matlab生成面导出stl格式,如何将MATLAB中的网格导出为stl或obj?