调用重载的构造函数时不会调用默认的构造函数

Posted 木叶∞

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了调用重载的构造函数时不会调用默认的构造函数相关的知识,希望对你有一定的参考价值。

原创、转载请注明出处

#pragma once
#ifndef LEI_H
#define LEI_H

class lei
{
public:
    lei()
    {
        cout << "hi" << endl;
    }
    lei(int x)
    {
        cout << x << endl;
    }
};
#endif // !LEI_H

默认构造函数:

#include"stdafx.h"
#include<iostream>
using std::cout;
using std::endl;
#include"lei.h"

int main()
{
    lei A;
    getchar();
    return 0;
}

结果:

调用重载的构造函数:

#include"stdafx.h"
#include<iostream>
using std::cout;
using std::endl;
#include"lei.h"

int main()
{
    lei A(2);
    getchar();
    return 0;
}

结果:

没有输出hi。说明不调用构造函数时才会自动调用默认构造函数。

 

以上是关于调用重载的构造函数时不会调用默认的构造函数的主要内容,如果未能解决你的问题,请参考以下文章

默认构造函数的分段错误

C++类和对象中

构造函数的调用规则

为啥在父类的构造函数中调用重载函数时,在 ES6 类上设置属性不起作用

构造函数拷贝构造函数析构函数

C++中复制构造函数被调用的三种情况