Вопрос о нескольких конструкторах, которые меня смущают.Несколько конструкторов в 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