99精品伊人亚洲|最近国产中文炮友|九草在线视频支援|AV网站大全最新|美女黄片免费观看|国产精品资源视频|精彩无码视频一区|91大神在线后入|伊人终合在线播放|久草综合久久中文

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

類和動態(tài)內(nèi)存分配(二)

冬至子 ? 來源:iDoitnow ? 作者:艱默 ? 2023-07-18 10:47 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

1. 轉(zhuǎn)換函數(shù)

  • 若要將單個值轉(zhuǎn)換為類類型,則需要創(chuàng)建對應(yīng)的類構(gòu)造函數(shù),其原型大致如下:

c_name(type_name value)

其中,c_name為類名,type_name是要轉(zhuǎn)換的類型名稱。( 注: 在使用的時候要注意隱式轉(zhuǎn)換可能帶來的誤解和錯誤,恰當(dāng)?shù)氖褂胑xplicit,防止其被用于隱式轉(zhuǎn)換)

  • 若要將類轉(zhuǎn)換為其他類型,則需要創(chuàng)建類轉(zhuǎn)換成員函數(shù),其原型大致如下:

operator type_name()

雖然該函數(shù)沒有聲明返回類型,但需要在函數(shù)實現(xiàn)的的最后返回所需類型的值。

2. 嵌套結(jié)構(gòu)和類

在類聲明中聲明的結(jié)構(gòu)、類或枚舉,它們的作用域為整個類。這種聲明不會創(chuàng)建數(shù)據(jù)對象,而只是指定了可以在類中使用的類型。如果聲明是在私有部分進行的,那么只能在這個類中使用。如果是在公部分聲明的,則該結(jié)構(gòu)不僅可以在類中使用,而且還可以通過類名::嵌套結(jié)構(gòu)的方式在類的外面使用。

3. 成員初始化列表

對于類Queue,

class Queue
{
public: 
  const int qsize;
  int num;
}

在編寫Queue構(gòu)造函數(shù)的時候,由于qsize是常量,所以只能對其進行初始化,但不能對其進行賦值,從概念上來說,在調(diào)用構(gòu)造函數(shù)的時候,對象是在構(gòu)造函數(shù)括號中代碼執(zhí)行之前就被創(chuàng)建,因此,對于const數(shù)據(jù)成員,必須在執(zhí)行到構(gòu)造函數(shù)體之前,即創(chuàng)建對象的時進行初始化。c++提供了一個特殊的語法來完成上述工作,即成員初始化列表。

成員初始化列表由逗號分隔的初始化列表組成(前面帶冒號)。它位于參數(shù)列表的右括號之后、函數(shù)體左括號之前。對于Queue其構(gòu)造函數(shù)可寫為:

Queue::Queue(int qs):qsize(qs)
{
  num = 0;
}
//或者
Queue::Queue(int qs):qsize(qs),num(0)  //初始化列表也適用于普通的數(shù)據(jù)成員
{
}

對于被聲明為引用的類成員,也只能使用類成員初始化列表的方法進行初始化。

:不能將成員初始化列表用于構(gòu)造函數(shù)之外的其他類方法。

4. 類內(nèi)初始化

c++11允許類內(nèi)初始化,即在類定義中進行初始化。

例如:

class Queue
{
  private:
  ...
    Node * front = NULL;
    enum {Q_SIZE = 10};
    Node * rear = NULL;
    int items = 0;
    const int qsize = Q_SIZE;
}

這與使用成員初始化列表等價,然而,使用成員初始化列表的構(gòu)造函數(shù)將覆蓋相應(yīng)的類內(nèi)初始化。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 轉(zhuǎn)換器
    +關(guān)注

    關(guān)注

    27

    文章

    9014

    瀏覽量

    151384
  • Queue
    +關(guān)注

    關(guān)注

    0

    文章

    16

    瀏覽量

    7411
  • C++語言
    +關(guān)注

    關(guān)注

    0

    文章

    147

    瀏覽量

    7270
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    動態(tài)內(nèi)存管理模塊的設(shè)計原理與實現(xiàn)

    Fense 通過設(shè)立一個雙向鏈表(struct Head *stHead)來保存所有被分配動態(tài)內(nèi)存塊的信息。鏈表中的每個節(jié)點對應(yīng)一個動態(tài)內(nèi)存塊,節(jié)點中包括此內(nèi)存大小、
    的頭像 發(fā)表于 06-30 08:05 ?2602次閱讀
    <b class='flag-5'>動態(tài)內(nèi)存</b>管理模塊的設(shè)計原理與實現(xiàn)

    C語言知識總結(jié):動態(tài)內(nèi)存分配

    動態(tài)內(nèi)存分配就 是指在程序執(zhí)行的過程中動態(tài)分配或者回收存儲空間的分配內(nèi)存的方法。
    發(fā)表于 10-24 15:52 ?1019次閱讀

    使用C語言實現(xiàn)簡單動態(tài)內(nèi)存分配

    首先要明白為何需要動態(tài)內(nèi)存分配,熟悉C語言的讀者應(yīng)該對這個比較熟悉,需要一段內(nèi)存時會使用malloc函數(shù)來申請所需要大小的內(nèi)存,函數(shù)返回一段內(nèi)存
    發(fā)表于 07-28 16:26 ?841次閱讀
    使用C語言實現(xiàn)簡單<b class='flag-5'>動態(tài)內(nèi)存</b><b class='flag-5'>分配</b>

    C語言程序設(shè)計中動態(tài)內(nèi)存分配如何實現(xiàn)

    C語言程序設(shè)計中,動態(tài)內(nèi)存分配如何實現(xiàn),需要注意哪些問題?
    發(fā)表于 09-28 16:53 ?1752次閱讀

    如何使用LAX_CODEGEN啟用動態(tài)內(nèi)存分配?

    我目前正在探索NXP_MBDToolbox_LAX。lax_codegen 生成的代碼基于靜態(tài)分配。我想管理大型向量,如何使用 LAX_CODEGEN 啟用動態(tài)內(nèi)存分配?
    發(fā)表于 04-10 08:09

    內(nèi)存動態(tài)內(nèi)存分配實現(xiàn)

    第27章 STM32H7的TCM,SRAM等五塊內(nèi)存動態(tài)內(nèi)存分配實現(xiàn)本章教程為大家分享一種DTCM,SRAM1,SRAM2,SRAM3和SRAM4可以獨立管理的動態(tài)內(nèi)存管理方案,在實
    發(fā)表于 08-03 07:14

    嵌入式C語言動態(tài)內(nèi)存分配

    動態(tài)內(nèi)存分配:1、malloc、memset、free在日常寫代碼時需要注意以下幾點:malloc分配內(nèi)存時,需要 if語句 判斷malloc是否成功
    發(fā)表于 12-14 06:37

    請問使用動態(tài)內(nèi)存分配安全嗎?

    想在C語言程序員之間開始一個激烈的,或者說有爭議的討論很簡單,只需要問:“使用動態(tài)內(nèi)存分配安全嗎?”使用動態(tài)內(nèi)存分配安全嗎?在C語言程序開發(fā)中,動態(tài)
    發(fā)表于 12-15 06:10

    使用動態(tài)內(nèi)存分配安全嗎

    [導(dǎo)讀]想在C語言程序員之間開始一個激烈的,或者說有爭議的討論很簡單,只需要問:“使用動態(tài)內(nèi)存分配安全嗎?”想在C語言程序員之間開始一個激烈的,或者說有爭議的討論很簡單,只需要問:“使用動態(tài)內(nèi)存
    發(fā)表于 12-15 07:44

    動態(tài)內(nèi)存分配是什么意思

    所謂動態(tài)內(nèi)存分配(Dynamic Memory Allocation)就是指在程序執(zhí)行的過程中動態(tài)分配或者回收存儲空間的分配
    發(fā)表于 12-17 08:17

    RTThread的動態(tài)內(nèi)存空間該如何去分配

    關(guān)于rtt的動態(tài)內(nèi)存空間分配,想問一下以下我的幾點理解是對的嗎1、我看RTT NANO和MASTER版本的動態(tài)內(nèi)存分配好像不太一樣,我的理解是MASTER版本的
    發(fā)表于 08-31 14:34

    動態(tài)內(nèi)存錯誤的靜態(tài)檢測

    內(nèi)存泄漏、空指針引用等動態(tài)內(nèi)存錯誤在/,/LL等支持動態(tài)內(nèi)存操作的程序中普遍存在在程序中,動態(tài)內(nèi)存管理錯誤是導(dǎo)致動態(tài)內(nèi)存錯誤的根本原因
    發(fā)表于 06-10 16:29 ?52次下載
    <b class='flag-5'>動態(tài)內(nèi)存</b>錯誤的靜態(tài)檢測

    嵌入式中需要用到動態(tài)內(nèi)存

    所謂動態(tài)內(nèi)存分配(Dynamic Memory Allocation)就是指在程序執(zhí)行的過程中動態(tài)分配或者回收存儲空間的分配
    的頭像 發(fā)表于 07-27 08:11 ?3247次閱讀

    靜、動態(tài)內(nèi)存的優(yōu)劣比較

    動態(tài)內(nèi)存分配不像數(shù)組等靜態(tài)內(nèi)存分配方法那樣需要預(yù)先分配存儲空間,而是由系統(tǒng)根據(jù)程序的需要即時分配
    的頭像 發(fā)表于 08-06 18:25 ?7045次閱讀

    嵌入式C語言中的動態(tài)內(nèi)存管理和動態(tài)內(nèi)存分配

    動態(tài)內(nèi)存管理同時還具有一個優(yōu)點:當(dāng)程序在具有更多內(nèi)存的系統(tǒng)上需要處理更多數(shù)據(jù)時,不需要重寫程序。
    發(fā)表于 08-15 17:16 ?2491次閱讀