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