在 c++ 中,如果我创建一个接受一个具有默认值的参数的构造函数 - 它会用作默认(空)构造函数吗?
In c++, if I create a constructor that takes one argument which has a default value - will that serve as a default (empty) constructor?
下面的单参数构造函数是否也用作默认构造函数?
class SomeClass
{
public:
SomeClass(const int &a = 4);
}
(假设构造函数定义良好等(
谢谢!
是的,默认构造函数的定义允许参数,只要它们具有默认值:
类
X
的默认构造函数是类X
的构造函数,其中每个不是函数参数包的参数都有一个默认参数(包括没有参数的构造函数的情况(。
(摘自C++1Z草案(
较旧的措辞:
类
X
的默认构造函数是类X
的构造函数,无需参数即可调用。
此外,复制构造函数将被隐式定义为默认值,因为您尚未声明一个。
没有"默认复制构造函数"这样的东西。 但是"默认构造函数"和"默认复制构造函数"是有意义的。
相关文章:
- 如何使用 swig 修改类构造函数以保留对其中一个构造函数参数的引用?
- 为什么从另一个构造函数内部调用C++构造函数不修改类变量?
- 如何处理没有默认构造函数但在另一个构造函数中构造的对象?
- 我用字符串做了一个C++构造函数,但它不会打印出字符串
- 有一个构造函数,但有两个析构函数
- C++ 如何根据作为输入传递的参数调用一个构造函数或另一个构造函数?
- C 如何仅实现多个继承类的一个构造函数
- 错误:在“(”标记之前进行预期的构造函数、析构函数或类型转换.即使我有一个构造函数
- 让构造函数在其初始化列表中调用同一类的另一个构造函数是否有效
- 创建一个构造函数,即Capabe获取任何数量的参数
- 我如何在类上需要另一个构造函数的对象中声明一个对象
- 使用委托调用构造函数和在另一个构造函数体中调用的区别
- 为什么当我尝试编译时,我的 c++ 代码不断返回对我的一个构造函数的"未定义的引用"?
- C :另一个构造函数的构造函数的隐式调用
- 如何创建一个构造函数,该构造函数吸收char阵列
- 为什么有一个构造函数同时接受initializer_list和一个参数包
- 我有一个构造函数,但我需要将输出返回到 main.cpp.我无法使用获取字符串功能!!任何想法如何实现这一目标?
- 如何在一个构造函数中使用两个可变参数模板参数来绑定两个函数
- 从同一类的另一个构造函数调用构造函数
- 将类的实例传递给另一个构造函数,该构造函数将其对象添加到所传递实例所拥有的列表中