c++ - 关于类定义的问题

标签 c++ class constructor

我看到下面两个类定义声称是等价的。真的吗?如何?谢谢。

class  complex{
double re, im;
public:
  complex( ): re(0) , im(0) { }
  complex (double  r): re(r), im(0)  { }
  complex (double  r, double i): re(r),   im(i) { }
};
class  complex{
  double re, im;
  public:
    complex (double  r=0, double i=0): re(r),   im(i) { }
};

最佳答案

第一个单独列出所有可能性(无参数、一个参数、两个参数)(overloading),第二个只需要一个函数,因为使用了default parameters。 ,它完全相同但更短。

如果变量的初始化不仅仅是为它们赋值,或者您希望根据参数数量使用完全不同的构造函数,那么第一个仍然有用。

关于c++ - 关于类定义的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5233528/

相关文章:

python - 类(class)员工打印方式

r - 保存 S4 类(class)的最简单方法

c++ - 如何使用extern类?

Java构造函数NullPointerException问题

c#构造函数默认参数的正确方式

c++ - 如何在 C++ 中计算以 2 为底的对数?

c++ - 确定将宽字符与不兼容的 char API 一起使用时的最佳实践

c++ - C++ 模板中条件代码实例化的最简洁方法

c++ - fopen打开文件失败是什么原因

Java:子类构造函数的 super() 如何/何时参与实例流?