最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C++構(gòu)造函數(shù)和析構(gòu)函數(shù)的使用與講解

 更新時(shí)間:2018年12月22日 15:16:32   作者:蝸牛201  
今天小編就為大家分享一篇關(guān)于C++構(gòu)造函數(shù)和析構(gòu)函數(shù)的使用與講解,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧

構(gòu)造函數(shù)(constructor)

1.構(gòu)造函數(shù)是種特殊的類成員函數(shù),遵循如下規(guī)則:

  •      a.函數(shù)名與類名必須相同。
  •      b.沒有返回值

例如:

class Obj
{
...
public:
   Obj()
   {
     ...
   }
};

2.構(gòu)造函數(shù)可以帶參數(shù),也可以重載

class Obj
{
...
public:
   Obj()
   {
    ...
   }
   Obj(int x, int y)
   {
    ...
   }
};

3.構(gòu)造函數(shù)和普通成員函數(shù)不一樣,一般不顯示調(diào)用。在創(chuàng)建一個(gè)對(duì)象時(shí),構(gòu)造函數(shù)自動(dòng)調(diào)用(編譯器來完成)。

析構(gòu)函數(shù)(destructor)

1.析構(gòu)和構(gòu)造是一對(duì)相反的過程,對(duì)象被創(chuàng)建時(shí)調(diào)用構(gòu)造函數(shù),對(duì)象被銷毀時(shí)調(diào)用析構(gòu)函數(shù),遵循如下規(guī)則:

  •     a.名稱固定,類名前加上波浪線~
  •     b.沒有返回值
  •     c.不能帶參數(shù)

例如,

class Obj
{
public:
  ~Obj()
   {
   }
};

2.析構(gòu)函數(shù)只能有一個(gè),不允許重載。

3.析構(gòu)函數(shù)不顯示調(diào)用,對(duì)象銷毀時(shí)編譯器自動(dòng)調(diào)用。

重新實(shí)現(xiàn)鏈表(使用類,構(gòu)造和析構(gòu)函數(shù))

創(chuàng)建DataObj.h頭文件

#ifndef _OBJECT_H_
#define _OBJECT_H_
struct Student
{
 char name[32];
 int age;
 Student* pNext;
};
class DataObj
{
public:
 DataObj();
 ~DataObj();
 void add(Student* pStu);
 void find(int age);
 void printNode(Student* pNode);
private:
 Student m_head;
};
#endif

創(chuàng)建DataObj.cpp源文件

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include "DataObj.h"
//構(gòu)造有頭鏈表
DataObj::DataObj()
{
 m_head.pNext = NULL;
}
DataObj::~DataObj()
{
 //指向每個(gè)節(jié)點(diǎn)的頭部
 Student* p = m_head.pNext;
 //釋放所有節(jié)點(diǎn)
 while(p)
 {
 Student *next = p->pNext;
 free(p);
 p = next;
 }
}
void DataObj::add(Student* pNode)
{
 //指向每個(gè)節(jié)點(diǎn)的頭部
 Student* p = &m_head;
 //通過頭節(jié)點(diǎn)查找到鏈表尾部節(jié)點(diǎn)
 while (p)
 {
 if (p->pNext == NULL)
 {
  break;
 }
 p = p->pNext;
 }
 //添加節(jié)點(diǎn)到尾部
 p->pNext = pNode;
}
void DataObj::find(int age)
{
 //標(biāo)記是否找到
 bool bFind = false;
 Student* p = &m_head;
 while(p)
 {
 if (p->age == age)
 {
  bFind = true;
  printNode(p);
 }
 p = p->pNext;
 }
 if (!bFind)
 {
 printf("沒有找到該age的節(jié)點(diǎn)");
 }
}
void DataObj::printNode(Student* pNode)
{
 printf("name = %s, age = %d\n", pNode->name, pNode->age);
}
int main()
{
 //構(gòu)造節(jié)點(diǎn)
 Student* pStu = (Student*) malloc(sizeof(Student));
 strcpy(pStu->name, "aaaa");
 pStu->age = 30;
 pStu->pNext = NULL;
 {
 DataObj dataObj;
 //添加節(jié)點(diǎn)
 dataObj.add(pStu);
 //查找節(jié)點(diǎn)
 dataObj.find(31);
 }
 return 1;
}

總結(jié)

以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對(duì)腳本之家的支持。如果你想了解更多相關(guān)內(nèi)容請(qǐng)查看下面相關(guān)鏈接

相關(guān)文章

  • C語言如何輸出中文

    C語言如何輸出中文

    這篇文章主要介紹了C語言如何輸出中文問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-09-09
  • 用QT實(shí)現(xiàn)計(jì)時(shí)器功能

    用QT實(shí)現(xiàn)計(jì)時(shí)器功能

    這篇文章主要為大家詳細(xì)介紹了用QT實(shí)現(xiàn)計(jì)時(shí)器功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-08-08
  • C++詳細(xì)講解互斥量與lock_guard類模板及死鎖

    C++詳細(xì)講解互斥量與lock_guard類模板及死鎖

    線程的主要優(yōu)勢(shì)在于,能夠通過全局變量來共享信息。不過,這種便捷的共享是有代價(jià)的:必須確保多個(gè)線程不會(huì)同時(shí)修改同一變量,或者某一線程不會(huì)讀取正由其他線程修改的變量。為了防止出現(xiàn)線程某甲試圖訪 問一共享變量時(shí),線程某乙正在對(duì)其進(jìn)行修改。引入了互斥量
    2022-07-07
  • C++中實(shí)現(xiàn)線程安全和延遲執(zhí)行詳解

    C++中實(shí)現(xiàn)線程安全和延遲執(zhí)行詳解

    這篇文章主要為大家詳細(xì)介紹了C++中實(shí)現(xiàn)線程安全和延遲執(zhí)行的相關(guān)知識(shí),文中的示例代碼講解詳細(xì),具有一定的借鑒價(jià)值,需要的小伙伴可以了解下
    2024-01-01
  • 如何通過UltraEdit解析BMP文件內(nèi)部結(jié)構(gòu)(BMP位圖基礎(chǔ))

    如何通過UltraEdit解析BMP文件內(nèi)部結(jié)構(gòu)(BMP位圖基礎(chǔ))

    我們先打開畫圖隨便畫一幅圖并采用24位bmp圖像格式保存,就得到了一張24位真彩色的位圖,下面我們來詳細(xì)分析bmp位圖的各個(gè)組成部分,感興趣的朋友跟隨小編一起看看吧
    2021-08-08
  • C語言編程大小端問題示例詳解教程

    C語言編程大小端問題示例詳解教程

    這篇文章主要為大家介紹了C語言編程大小端問題解決的示例內(nèi)容詳解教程,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步
    2021-11-11
  • 基于Windows C++ 應(yīng)用程序通用日志組件的使用詳解

    基于Windows C++ 應(yīng)用程序通用日志組件的使用詳解

    眾所周知,在調(diào)試、跟蹤和執(zhí)行應(yīng)用程序的過程中,程序的日志能為這些工作提供大量有價(jià)值的運(yùn)行信息。因此,程序的日志對(duì)應(yīng)用程序的運(yùn)行、維護(hù)至關(guān)重要
    2013-05-05
  • C 語言基礎(chǔ)教程(我的C之旅開始了)[九]

    C 語言基礎(chǔ)教程(我的C之旅開始了)[九]

    C 語言基礎(chǔ)教程(我的C之旅開始了)[九]...
    2007-02-02
  • C++實(shí)現(xiàn)簡(jiǎn)單學(xué)生信息管理系統(tǒng)

    C++實(shí)現(xiàn)簡(jiǎn)單學(xué)生信息管理系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了C++實(shí)現(xiàn)簡(jiǎn)單學(xué)生信息管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • C++入門之list的使用詳解

    C++入門之list的使用詳解

    這篇文章主要為大家介紹了C++入門之list的使用,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2021-11-11

最新評(píng)論

自治县| 民县| 大渡口区| 马关县| 新郑市| 冀州市| 柳河县| 腾冲县| 彩票| 大洼县| 如东县| 苍梧县| 镇宁| 西城区| 彩票| 赤峰市| 鲜城| 开江县| 金乡县| 兴山县| 西峡县| 泊头市| 册亨县| 辉县市| 华蓥市| 多伦县| 佛冈县| 澳门| 金川县| 贡觉县| 宁城县| 泰和县| 饶河县| 保定市| 方山县| 峡江县| 万宁市| 淄博市| 金堂县| 思茅市| 华安县|