C++面向对象(二):构造、析构函数
构造函数(Constructor)
构造函数(也叫构造器),在对象创建的时候回自动调用,一般用于完成对象的初始化工作
函数名与类同名,无返回值,可以有参数,可以重载,可以有多个构造函数
struct Person {
int m_age;
// 创建对象时自动调用
Person() {
m_age = 6;
cout << "Person(" << m_age << ")" << endl;
}
Person(int age) {
m_age = age;
cout << "Person("<< m_age << ")" << endl;
}
};
int main() {
// 调用无参数的
Person person1;
// 调用age参数的
Person person2(666);
getchar();
return 0;
}
一旦自定义了构造函数,必须用其中一个自定义的构造函数来初始化对象。
如果上面的代码没有这个:
Person() {
m_age = 6;
cout << "Person(" << m_age << ")" << endl;
}
调用无参的构造函数就会报错。
通过malloc分配的对象不会调用构造函数,而new会调用。
// 调用了构造函数
Person *P = new Person;
// 没有调用
Person *p = (Person *