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

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

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

構造函數(shù)(constructor)

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

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

例如:

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

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

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

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

析構函數(shù)(destructor)

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

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

例如,

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

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

3.析構函數(shù)不顯示調用,對象銷毀時編譯器自動調用。

重新實現(xiàn)鏈表(使用類,構造和析構函數(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"
//構造有頭鏈表
DataObj::DataObj()
{
 m_head.pNext = NULL;
}
DataObj::~DataObj()
{
 //指向每個節(jié)點的頭部
 Student* p = m_head.pNext;
 //釋放所有節(jié)點
 while(p)
 {
 Student *next = p->pNext;
 free(p);
 p = next;
 }
}
void DataObj::add(Student* pNode)
{
 //指向每個節(jié)點的頭部
 Student* p = &m_head;
 //通過頭節(jié)點查找到鏈表尾部節(jié)點
 while (p)
 {
 if (p->pNext == NULL)
 {
  break;
 }
 p = p->pNext;
 }
 //添加節(jié)點到尾部
 p->pNext = pNode;
}
void DataObj::find(int age)
{
 //標記是否找到
 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é)點");
 }
}
void DataObj::printNode(Student* pNode)
{
 printf("name = %s, age = %d\n", pNode->name, pNode->age);
}
int main()
{
 //構造節(jié)點
 Student* pStu = (Student*) malloc(sizeof(Student));
 strcpy(pStu->name, "aaaa");
 pStu->age = 30;
 pStu->pNext = NULL;
 {
 DataObj dataObj;
 //添加節(jié)點
 dataObj.add(pStu);
 //查找節(jié)點
 dataObj.find(31);
 }
 return 1;
}

總結

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對腳本之家的支持。如果你想了解更多相關內(nèi)容請查看下面相關鏈接

相關文章

  • C語言如何輸出中文

    C語言如何輸出中文

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

    用QT實現(xiàn)計時器功能

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

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

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

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

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

    如何通過UltraEdit解析BMP文件內(nèi)部結構(BMP位圖基礎)

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

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

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

    基于Windows C++ 應用程序通用日志組件的使用詳解

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

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

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

    C++實現(xiàn)簡單學生信息管理系統(tǒng)

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

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

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

最新評論

合川市| 黑龙江省| 平顶山市| 扶沟县| 遵义市| 兴仁县| 佛冈县| 庐江县| 邢台市| 芦山县| 柘荣县| 永安市| 滨州市| 龙门县| 海城市| 浪卡子县| 宁陵县| 兰溪市| 五家渠市| 邵东县| 贵南县| 广昌县| 扬州市| 黔东| 尚义县| 新疆| 介休市| 佛冈县| 天峻县| 太康县| 台江县| 开封县| 南木林县| 报价| 遵化市| 呼图壁县| 云安县| 辽中县| 太仓市| 格尔木市| 新竹县|