-4
问题是关于混淆我的多个构造函数。C++中的多个构造函数
#include "complex.h"
#include <iostream>
using namespace std;
Complex::Complex(double realPart, double imPart)
: m_R(realPart), m_I(imPart)
{
cout << "complex(" << m_R << "," << m_I << ")" << endl;
}
Complex::Complex(double realPart)
{
Complex(realPart, 0);
}
Complex::Complex() : m_R(0.0), m_I(0.0)
{
}
int main() {
Complex C1;
Complex C2(3.14);
Complex C3(6.2, 10.23);
}
有人可以解释如何编译器知道使用三个定义的构造函数吗?引物来自this book,第58页。
与参数匹配 – NathanOliver
查看参数个数并根据参数类型进行更好的匹配。 – Jarod42
这也可以称为构造函数重载。 – maniacalrobot