一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

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

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

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

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

冬至子 ? 來(lái)源:iDoitnow ? 作者:艱默 ? 2023-07-18 10:47 ? 次閱讀

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

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

c_name(type_name value)

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

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

operator type_name()

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

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

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

3. 成員初始化列表

對(duì)于類Queue,

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

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

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

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

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

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

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

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

例如:

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

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

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

    關(guān)注

    27

    文章

    8887

    瀏覽量

    150230
  • Queue
    +關(guān)注

    關(guān)注

    0

    文章

    16

    瀏覽量

    7372
  • C++語(yǔ)言
    +關(guān)注

    關(guān)注

    0

    文章

    147

    瀏覽量

    7176
收藏 人收藏

    評(píng)論

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

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

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

    C語(yǔ)言知識(shí)總結(jié):動(dòng)態(tài)內(nèi)存分配

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

    使用C語(yǔ)言實(shí)現(xiàn)簡(jiǎn)單動(dòng)態(tài)內(nèi)存分配

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

    C語(yǔ)言程序設(shè)計(jì)中動(dòng)態(tài)內(nèi)存分配如何實(shí)現(xiàn)

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

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

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

    內(nèi)存動(dòng)態(tài)內(nèi)存分配實(shí)現(xiàn)

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

    嵌入式C語(yǔ)言動(dòng)態(tài)內(nèi)存分配

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

    請(qǐng)問(wèn)使用動(dòng)態(tài)內(nèi)存分配安全嗎?

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

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

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

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

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

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

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

    動(dòng)態(tài)內(nèi)存錯(cuò)誤的靜態(tài)檢測(cè)

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

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

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

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

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

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

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