构造函数在建立类的对象时,会自动调用,一般用于初始化操作。对吗?

2024年12月01日 12:35
有2个网友回答
网友(1):

是自动调用的,不是手动调用的,手动调用会报错。两个例子
1、手动调用报错
#include
using namespace std;

class Test
{
public:
Test()
{
printf("hello\n");
}

Test(int v)
{
printf("haha\n");
}
};

int main()
{
//test(); 调用,不注释的话会报错
//test(1); 手动调用,不注释的话会报错
system("pause");
return 0;
}
2、自动调用

#include
using namespace std;
class time
{
public:
time()//constructor.构造函数
{
hour = 1;
minute = 1;
sec = 1;
cout << "hello world" << endl;
};

~time()
{
cout << "goodbye" << endl;
}

void set_time()
{
cin >> hour >> minute >> sec;
};

void show_time()
{
cout << hour << ":" << minute << ":" << sec << endl;
};

private:
int hour = 0;
int minute = 0;
int sec = 0;
};
int main()
{
class time t1;
t1.show_time();
t1.set_time();
t1.show_time();

system("pause");
return 0;
}

网友(2):

//Student extends Person
//手动创建对象,所以这个一般是不会自动调用,我的回答:是错误的
Student stu=new Student();
/*
构造函数 自动调用是啥?
当Student()被调用的时候,父类的Person构造函数是自动调用的,但是前提是 子类正在在 创建对象。
此处应该强调 父类构造函数 与 继承 等字眼 才对。
*/