1. 程式人生 > 實用技巧 >007_linuxC++之_建構函式的初級應用

007_linuxC++之_建構函式的初級應用

007_linuxC++之_建構函式的初級應用

(一)建構函式:用來在建立物件時初始化物件, 即為物件成員變數賦初始值

(二)建構函式的命名必須和類名完全相同 (三)更對具體的檢視:建構函式 (四)直接分析程式 007_linuxC++之_建構函式的初級應用

007_linuxC++之_建構函式的初級應用
執行結果 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<<"
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 }
mian.cpp