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