c++ - 在 C++ 中用更少的参数调用构造函数

标签 c++ constructor

我有类 Foo 和给定的构造函数:

class Foo {
 public:
   Foo(int w, char x, int y, int z);
   ...
 };

int main()
{
   Foo abc (10, 'a');
}

我可以像这样使用那个构造函数吗?当构造函数签名不匹配时?

那么如何给默认值呢?

最佳答案

除非签名尾部的参数有默认值,例如:

class Foo {
public:
    Foo(int w, char x, int y=5, int z=0);
    ...
};

如果有默认值,那么您可以只提供非默认参数,并且可以选择提供一些默认参数,即以下任何调用都是有效的:

Foo abc (10, 'a');
Foo abc (10, 'a', 3);
Foo abc (10, 'a', 42, 11);

关于c++ - 在 C++ 中用更少的参数调用构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8576481/

相关文章:

java - onLoad JSF 填充列表框

java - 我应该在声明时还是在构造函数中实例化实例变量?

c++ - C++中基类构造函数是如何调用的

Typescript - 从抽象构造函数调用抽象方法或提供等效功能

c++ - 将派生类存储到 vector C++

c++ - Eigen是否假设混叠?

c++ - 在 C++ 中使用集合 vector 时出现段错误

java - 调试我的第一个类。使用用户输入创建一个圆圈

C++-#include "filename"

c++ - 创建具有组权限的新文件