007_linuxC++之_建構函式的初級應用
阿新 • • 發佈:2020-10-21
007_linuxC++之_建構函式的初級應用
(一)建構函式:用來在建立物件時初始化物件, 即為物件成員變數賦初始值
(二)建構函式的命名必須和類名完全相同 (三)更對具體的檢視:建構函式 (四)直接分析程式執行結果
解析上面程式: 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<<"mian.cppPerson()"<<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 }