-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