当前位置:  开发笔记 > 编程语言 > 正文

C++中的多个构造函数

如何解决《C++中的多个构造函数》经验,为你挑选了1个好方法。

问题是关于多个让我困惑的构造函数.

#include "complex.h"
#include 

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);
}

有人可以解释编译器如何知道使用哪三个构造函数定义?Primer来自本书,第58页.



1> 小智..:

边注

如果要使用C++ 11委托构造函数,则应编写:

Complex::Complex(double realPart) 
:    Complex(realPart, 0)
{}

代替

Complex::Complex(double realPart) {
    Complex(realPart, 0);
    }

这会Complex在构造函数体内创建一个临时未使用的.

推荐阅读
手机用户2402852307
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有