(一)构造函数:用来在创建对象时初始化对象, 即为对象成员变量赋初始值
(二)构造函数的命名必须和类名完全相同
(三)更对具体的查看:构造函数
(四)直接分析程序
解析上面程序:
- 当程序运行到四点时候,就会自动调用第一点无参构造函数,打印Person()
- 当运行到第5点时候,就会调用第2点有参构造函数,并初始化相关参数,打印Person(char *,int)
- per2.printInfo();打印初始化了的参数
- 当程序运行结束之后,会调用析构函数,调用两次,因为per1和per2各一次
注意:构造函数可以有很多个,但是析构函数只能有一个
#include <iostream>
#include <string.h>
using namespace std;
class Person{
private:
char *name;
int age;
public:
Person(){ /*构造函数*/
this->name = NULL;
this->age = NULL;
cout<<"Person()"<<endl;
}
Person(char *name,int age){ /*构造函数*/
cout<<"Person(char *,int)"<<endl;
this->name = new char[strlen(name) + 1];
strcpy(this->name,name);
this->age = age;
}
~Person(){
cout<<"~Person()"<<endl;
delete [] name;
} /*析构函数,当子程序运行结束时候系统自动调用*/
void printInfo(void);
};
void Person::printInfo(void)
{
cout<<"name = "<<name<<"age = "<<age<<endl;
}
int main(int argc,char ** argv)
{
Person per1; /*调用构造函数,打印无参时候的Person()*/
Person per2("zhangsan",10);/*调用构造函数,打印Person(char *,int)*/
per2.printInfo();
return 0;
}
mian.cpp