欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

深入解析C++中的構(gòu)造函數(shù)和析構(gòu)函數(shù)

 更新時間:2013年09月03日 08:08:45   投稿:jingxian  
析構(gòu)函數(shù):在撤銷對象占用的內(nèi)存之前,進行一些操作的函數(shù)。析構(gòu)函數(shù)不能被重載,只能有一個

構(gòu)造函數(shù):
在類實例化對象時自動執(zhí)行,對類中的數(shù)據(jù)進行初始化。構(gòu)造函數(shù)可以從載,可以有多個,但是只能有一個缺省構(gòu)造函數(shù)。

析構(gòu)函數(shù):
在撤銷對象占用的內(nèi)存之前,進行一些操作的函數(shù)。析構(gòu)函數(shù)不能被重載,只能有一個。

調(diào)用構(gòu)造函數(shù)和析構(gòu)函數(shù)的順序:
先構(gòu)造的后析構(gòu),后構(gòu)造的先折構(gòu)。它相當(dāng)于一個棧,先進后出。

復(fù)制代碼 代碼如下:

#include<iostream>
#include<string>
using namespace std;
class Student{
 public:
  Student(string,string,string);
  ~Student();
  void show();
 private:
  string num;
  string name;
  string sex;
};
Student::Student(string nu,string na,string s){
 num=nu;
 name=na;
 sex=s;
 cout<<name<<" is builded!"<<endl;
}
void Student::show(){
 cout<<num<<"\t"<<name<<"\t"<<sex<<endl;
}
Student::~Student(){
 cout<<name<<" is destoried!"<<endl;
}
int main(){
 Student s1("001","千手","男");
 s1.show();
 Student s2("007","綱手","女");
 s2.show();
 cout<<"nihao"<<endl;
 cout<<endl;
 cout<<"NIHAO"<<endl;
 return 0;
}

先構(gòu)造的千手,結(jié)果后析構(gòu)的千手;后構(gòu)造的綱手,結(jié)果先折構(gòu)的綱手。

特點:
在全局范圍定義的對象和在函數(shù)中定義的靜態(tài)(static)局部對象,只在main函數(shù)結(jié)束或者調(diào)用exit函數(shù)結(jié)束程序時,才調(diào)用析構(gòu)函數(shù)。

如果是在函數(shù)中定義的對象,在建立對象時調(diào)用其構(gòu)造函數(shù),在函數(shù)調(diào)用結(jié)束、對象釋放時先調(diào)用析構(gòu)函數(shù)。

復(fù)制代碼 代碼如下:

#include<iostream>
#include<string>
using namespace std;
class Student{
 public:
  Student(string,string);
  ~Student();
  void show();
  string num;
  string name;
};
Student::Student(string nu,string na){
 num=nu;
 name=na;
 cout<<name<<" is builded!"<<endl<<endl;
}
void Student::show(){
 cout<<num<<"\t"<<name<<endl<<endl;
}
Student::~Student(){
 cout<<name<<" is destoried!"<<endl<<endl;
}
void fun(){
 cout<<"============調(diào)用fun函數(shù)============"<<endl<<endl;
 Student s2("002","自動局部變量");//定義自動局部對象
 s2.show();
 static Student s3("003","靜態(tài)局部變量");//定義靜態(tài)局部變量
 s3.show();
 cout<<"===========fun函數(shù)調(diào)用結(jié)束=============="<<endl<<endl;
}
int main(){
 Student s1("001","全局變量");
 s1.show();
 fun();
 cout<<"\nthis is some content before the end\n";//這是一段位于main函數(shù)結(jié)束之前,函數(shù)調(diào)用之后的內(nèi)容
 cout<<endl;
 return 0;
}

相關(guān)文章

  • 解析內(nèi)存對齊 Data alignment: Straighten up and fly right的詳解

    解析內(nèi)存對齊 Data alignment: Straighten up and fly right的詳解

    對于所有直接操作內(nèi)存的程序員來說,數(shù)據(jù)對齊都是很重要的問題.數(shù)據(jù)對齊對你的程序的表現(xiàn)甚至能否正常運行都會產(chǎn)生影響
    2013-05-05
  • C++設(shè)計模式之工廠模式

    C++設(shè)計模式之工廠模式

    本文是C++設(shè)計模式系列文章的第一篇,主要給大家講述下工廠模式,非常的簡單實用,有需要的小伙伴可以參考下
    2016-05-05
  • C++入門筆記之std::vector容器詳解

    C++入門筆記之std::vector容器詳解

    這篇文章主要給大家介紹了關(guān)于C++之std::vector容器的相關(guān)資料,vector,一種隨機訪問的數(shù)組類型,它提供了對數(shù)組元素的快速、隨機訪問,以及在序列尾部快速、隨機的插入和刪除操作,需要的朋友可以參考下
    2021-07-07
  • 舉例分析private的作用(c/c++學(xué)習(xí))

    舉例分析private的作用(c/c++學(xué)習(xí))

    我知道我們可以用 public 中的值,把private中的數(shù)據(jù)給提出來,但是還是搞不懂private該怎么用,或者說在一個具體程序中,private有什么用
    2020-08-08
  • C語言各種操作符透徹理解上篇

    C語言各種操作符透徹理解上篇

    C 語言提供了豐富的操作符,有:算術(shù)操作符,移位操作符,位操作符,賦值操作符。讓我們通讀本篇來詳細(xì)了解吧
    2022-02-02
  • C/C++指針介紹與使用詳解

    C/C++指針介紹與使用詳解

    不知從何時起對你一眼萬年,從此,每一天被賦予了特別的意義。時隔多年,依然揮之不去是你------指針!?。”酒袔缀鯏?shù)據(jù)類型只用了int,但是float、double等也是可以的
    2022-08-08
  • c語言中&的用法示例代碼

    c語言中&的用法示例代碼

    這篇文章主要給大家介紹了關(guān)于c語言中&的用法的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-09-09
  • C語言實現(xiàn)自動發(fā)牌程序

    C語言實現(xiàn)自動發(fā)牌程序

    這篇文章主要介紹了利用C語言實現(xiàn)自動發(fā)牌程序,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-12-12
  • C語言 數(shù)據(jù)結(jié)構(gòu)之中序二叉樹實例詳解

    C語言 數(shù)據(jù)結(jié)構(gòu)之中序二叉樹實例詳解

    這篇文章主要介紹了C語言 數(shù)據(jù)結(jié)構(gòu)之中序二叉樹實例詳解的相關(guān)資料,需要的朋友可以參考下
    2017-01-01
  • C語言修煉之路一朝函數(shù)思習(xí)得?模塊思維世間生下篇

    C語言修煉之路一朝函數(shù)思習(xí)得?模塊思維世間生下篇

    函數(shù)是一組一起執(zhí)行一個任務(wù)的語句。每個?C?程序都至少有一個函數(shù),即主函數(shù)?main()?,所有簡單的程序都可以定義其他額外的函數(shù)
    2022-03-03

最新評論