使用()创建类的实例

Creating an instance of a class with ()

本文关键字:实例 创建 使用      更新时间:2023-10-16

我有一个问题:当你在c++中用ClassName instance()创建一个类的实例时,使用什么构造函数?

的例子:

#include <iostream>
using namespace std;
class Test
{
private:
    Test()
    {
        cout << "AAA" << endl;
    }
public:
    Test(string str)
    {
        cout << "String = " << str << endl;
    }
};
int main()
{
    Test instance_1(); // instance_1 is created... using which constructor ?
    Test instance_2("hello !"); // Ok
    return 0;
}

谢谢!

真巧!由于默认构造函数是私有的,编译可能会失败。但是,它编译后不会创建任何内容。的原因吗?

Test instance_1();

…只是一个函数声明!(返回Test,不带任何参数)

语句Test instance_1();根本不调用构造函数,因为它没有定义变量-相反,它声明了一个名为instance_1的函数,该函数返回类型为Test的对象。要使用0参数构造函数创建实例,可以使用Test instance_1;