C++ 构造函数

在 C++ 构造函数中,对于有默认的参数的构造函数时

#include<iostream>

class complex
{
public:
    complex(double r = 0, double i = 0) // 1
        : re(r), im(i)
    {
        std::cout << "construct 1" << std::endl;
    }
    complex() : re(0), im(0)
    {
        std::cout << "construct 2" << std::endl;
    }  // 2
private:
    double re, im;    
};

int main() {
    // complex c1; // 3
    complex c2(1,2);
    return 0;
}

1 和 2 叫函数重载;

1 可以接收 2 个参数,2 可以不接受参数

但是这两个构造函数不能同时存在

因为 3  的这种构造函数,1 和 2 都可以调用,这样编译器就不知道该调谁了。

原文地址:https://www.cnblogs.com/wanghao-boke/p/15408162.html