国产chinesehdxxxx老太婆,办公室玩弄爆乳女秘hd,扒开腿狂躁女人爽出白浆 ,丁香婷婷激情俺也去俺来也,ww国产内射精品后入国产

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

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

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

C++之初始化列表學(xué)習(xí)的總結(jié)

電子設(shè)計(jì) ? 來(lái)源:電子設(shè)計(jì) ? 作者:電子設(shè)計(jì) ? 2020-12-24 17:39 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

大家好,本次給大家分享的內(nèi)容是C++里面的初始化列表運(yùn)用,希望對(duì)大家有幫助。

一、引出列表的使用:

1、在介紹列表之前,我們先來(lái)看看使用const關(guān)鍵字來(lái)修飾類(lèi)中的成員會(huì)有什么事情發(fā)生,下面是一段簡(jiǎn)單代碼:

#include <stdio.h>
class Test{
private:
const int a;
public:
int getA()

return a;

};
int main()

return 0;

編譯:

root@txp-virtual-machine:/home/txp/c++# g++ test.cpp
root@txp-virtual-machine:/home/txp/c++#

從編譯結(jié)果來(lái)看,沒(méi)毛病,完全和正常修飾一個(gè)成員一樣;為了要顯示這里的細(xì)節(jié)問(wèn)題,我們來(lái)創(chuàng)建一個(gè)對(duì)象,進(jìn)而調(diào)用類(lèi)里面的方法來(lái)獲取成員a的值:

#include <stdio.h>
class Test{
private:
const int a;
public:
int getA()

return a;

};
int main()

Test t;
printf("the t.a(chǎn) is %d",t.getA());
return 0;

編譯:

root@txp-virtual-machine:/home/txp/c++# g++ test.cpp
test.cpp:3:7: error: uninitialized const member in ‘class Test’
test.cpp:5:16: note: ‘const int Test::a’ should be initialized
const int a;

通過(guò)編譯我們發(fā)現(xiàn)他報(bào)了一個(gè)錯(cuò)誤,說(shuō)成員a沒(méi)有進(jìn)行初始化;那么沒(méi)有初始化,我們就給成員a一個(gè)值來(lái)進(jìn)行初始化:

#include <stdio.h>
class Test{
private:
const int a;
public:
Test()

a=666;

int getA()

return a;

};
int main()

Test t;
printf("the t.a(chǎn) is %d",t.getA());
return 0;

我們是用了無(wú)參構(gòu)造函數(shù)對(duì)a進(jìn)行初始化(private里面的成員不能直接初始化,被保護(hù)住了,這個(gè)知識(shí)是基本常識(shí)哈),下面編譯看看,會(huì)有啥現(xiàn)象發(fā)生:

root@txp-virtual-machine:/home/txp/c++# g++ test.cpp
test.cpp: In constructor ‘Test::Test()’:
test.cpp:7:6: error: uninitialized const member in ‘const int’ [-fpermissive]
Test()
^~~~
test.cpp:5:16: note: ‘const int Test::a’ should be initialized
const int a;

test.cpp:9:11: error: assignment of read-only member ‘Test::a’
a=666;

和沒(méi)有const關(guān)鍵字修飾的成員還不一樣,上面說(shuō)a還是要初始化,也就是我們?cè)跇?gòu)造函數(shù)體里面對(duì)a進(jìn)行進(jìn)行初始賦值是行不通的哦,那該如何解決解決這個(gè)問(wèn)題呢?答案來(lái)了,就是我們的初始化列表。

二、初始化列表“閃亮登場(chǎng)”:

1、首先我們先來(lái)看一下初始haul列表的書(shū)寫(xiě)格式:

ClassName::ClassName:
m1(v1),m2(v1,v2),m3(v3)


從上面我們可以發(fā)現(xiàn),初始化列表就是在構(gòu)造函數(shù)名稱(chēng)后面且在構(gòu)造函數(shù)體之間。同時(shí)這里我們也要注意初始化列表的使用原則:

(1)成員的初始化順序與成員的聲明順序相同。

(2)成員的初始化順序與初始化列表中的位置無(wú)關(guān)。

(3)初始化列表優(yōu)先于構(gòu)造函數(shù)的函數(shù)體執(zhí)行。

我們接著上面那個(gè)初始的問(wèn)題,現(xiàn)在我們使用初始化列表來(lái)看看啥情況:

#include <stdio.h>
class Test{
private:
const int a;
public:
Test():a(666)

// a=666;

int getA()

return a;

};
int main()

Test t;
printf("the t.a(chǎn) is %d",t.getA());
return 0;

編譯:

root@txp-virtual-machine:/home/txp/c++# g++ test.cpp
root@txp-virtual-machine:/home/txp/c++# ls
a.out test.cpp
root@txp-virtual-machine:/home/txp/c++# ./a.out
the t.a(chǎn) is 666

問(wèn)題被完美解決,是不是心里很開(kāi)心哈。接下來(lái)我們繼續(xù)舉一個(gè)上面規(guī)則里面說(shuō)的初始化順序問(wèn)題:

#include <stdio.h>
class Value{
private:
int b;
public:
Value(int c)

printf("the c is %d",c);
b=c;

int getB()

return b;

};
class Test{
private:
Value d1;
Value d2;
Value d3;
public:
Test():d2(2),d1(1),d3(3)

printf("TXP ");

};
int main()

Test t;
return 0;

編譯:

root@txp-virtual-machine:/home/txp/c++# g++ test.cpp
root@txp-virtual-machine:/home/txp/c++# ./a.out
the c is 1
the c is 2
the c is 3
TXP

從上面的輸出結(jié)果我們可以初始化的順序與成員的聲明順序有關(guān),同時(shí)他也先于構(gòu)造函數(shù)體的執(zhí)行。

三、類(lèi)中的const成員:

現(xiàn)在我們來(lái)總結(jié)一下在類(lèi)中使用const關(guān)鍵字來(lái)修飾類(lèi)中的屬性時(shí),這時(shí)的屬性有啥特征:

(1)類(lèi)中的const成員會(huì)被分配空間的。

(2)類(lèi)中的const成員的本質(zhì)是只讀變量。

(3)類(lèi)中的const成員只能再初始化列表中指定初始值

(4)編譯器無(wú)法直接得到const成員的初始值,因此無(wú)法進(jìn)入到符號(hào)表成為真正意義上的常量(也就是說(shuō)這里的只讀變量,我們還是可以通過(guò)一定的手段來(lái)改變其值的大小。)

下面我們來(lái)看一個(gè)例子:

#include <stdio.h>
class Value{
private:
int b;
public:
Value(int c)

printf("the c is %d",c);
b=c;

int getB()

return b;

};
class Test{
private:
const int f;
Value d1;
Value d2;
Value d3;
public:
Test():d2(2),d1(1),d3(3),f(888)

printf("TXP");

int getF()

return f;

int setF(int i)

int *p = const_cast<int*>(&f);
*p = i;

};
int main()

Test t;
printf("the f is %d",t.getF());
t.setF(666);
printf("the f is %d",t.getF());

編譯:

root@txp-virtual-machine:/home/txp/c++# g++ test.cpp
root@txp-virtual-machine:/home/txp/c++# ./a.out
the c is 1
the c is 2
the c is 3
TXP
the f is 888
the f is 666

通過(guò)上面的例子,我們的結(jié)論都得到了一一驗(yàn)證。

四、總結(jié):

(1)類(lèi)中可以使用初始化列表對(duì)成員進(jìn)行初始化。

(2)初始化列表先于構(gòu)造函數(shù)體執(zhí)行。

(3)類(lèi)中可以定義const成員變量。

(4)const成員變量必須在初始化列表中指定初值。

(5)const成員變量只為只讀變量。

以上就是本次的學(xué)習(xí)分享。純屬個(gè)人學(xué)習(xí)c++的成長(zhǎng)之旅。

審核編輯:符乾江
聲明:本文內(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)投訴
  • 可編程邏輯
    +關(guān)注

    關(guān)注

    7

    文章

    526

    瀏覽量

    44750
  • C++
    C++
    +關(guān)注

    關(guān)注

    22

    文章

    2119

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

    IM系列設(shè)備過(guò)載故障:界面初始化終止的診斷流程與修復(fù)指南

    當(dāng) IM 系列設(shè)備出現(xiàn)過(guò)載故障導(dǎo)致界面初始化終止時(shí),通常表現(xiàn)為設(shè)備啟動(dòng)后操作界面無(wú)顯示、指示燈異常閃爍或初始化進(jìn)度條停滯不前,同時(shí)可能伴隨設(shè)備運(yùn)行異響或異常發(fā)熱。初步判斷時(shí),可觀察設(shè)備是否有錯(cuò)
    的頭像 發(fā)表于 06-28 09:47 ?388次閱讀

    IM 系列設(shè)備過(guò)載保護(hù)機(jī)制下界面初始化中斷的底層邏輯與解決方案

    一、過(guò)載保護(hù)機(jī)制與界面初始化的關(guān)聯(lián)基礎(chǔ) IM 系列設(shè)備的過(guò)載保護(hù)機(jī)制是保障設(shè)備安全運(yùn)行的核心功能,其通過(guò)傳感器實(shí)時(shí)采集設(shè)備運(yùn)行參數(shù),如電流、電壓、溫度、系統(tǒng)資源占用率等。一旦這些參數(shù)超出預(yù)設(shè)閾值
    的頭像 發(fā)表于 06-27 09:58 ?72次閱讀

    音頻無(wú)法初始化是怎么回事?

    初始化代碼如圖 軟硬件版本信息 rtos_only01科技開(kāi)發(fā)板 錯(cuò)誤日志
    發(fā)表于 04-27 06:53

    STM32CubeMX用于STM32配置和初始化C代碼生成

    電子發(fā)燒友網(wǎng)站提供《STM32CubeMX用于STM32配置和初始化C代碼生成.pdf》資料免費(fèi)下載
    發(fā)表于 02-26 17:32 ?677次下載

    AFE031初始化的過(guò)程應(yīng)該是什么?

    得到正確的RFE1和RFE2電壓值. 我工程中得到RFE1為2.6v左右(文檔上說(shuō)的是PA_VS/2約為7.65v左右),RFE2 則為0(而文檔中說(shuō)的是AVD/2約為1.5v左右). 2.對(duì)AFE031初始化的過(guò)程應(yīng)該是什么?有沒(méi)有參考文檔給小弟學(xué)習(xí)下....... 等
    發(fā)表于 01-15 06:54

    EE-359:ADSP-CM40x啟動(dòng)時(shí)間優(yōu)化和器件初始化

    電子發(fā)燒友網(wǎng)站提供《EE-359:ADSP-CM40x啟動(dòng)時(shí)間優(yōu)化和器件初始化.pdf》資料免費(fèi)下載
    發(fā)表于 01-13 16:33 ?0次下載
    EE-359:ADSP-CM40x啟動(dòng)時(shí)間優(yōu)化和器件<b class='flag-5'>初始化</b>

    EE-88:使用21xx編譯器在C初始化變量

    電子發(fā)燒友網(wǎng)站提供《EE-88:使用21xx編譯器在C初始化變量.pdf》資料免費(fèi)下載
    發(fā)表于 01-13 15:54 ?0次下載
    EE-88:使用21xx編譯器在<b class='flag-5'>C</b>中<b class='flag-5'>初始化</b>變量

    OMAP5912多媒體處理器初始化參考指南

    電子發(fā)燒友網(wǎng)站提供《OMAP5912多媒體處理器初始化參考指南.pdf》資料免費(fèi)下載
    發(fā)表于 12-17 16:20 ?0次下載
    OMAP5912多媒體處理器<b class='flag-5'>初始化</b>參考指南

    STM32F407 MCU使用SD NAND?不斷電初始化失效解決方案

    STM32F407微控制器單元(MCU)與SD NAND的結(jié)合提供了強(qiáng)大的存儲(chǔ)解決方案。然而,不斷電初始化失效問(wèn)題可能會(huì)導(dǎo)致系統(tǒng)穩(wěn)定性和數(shù)據(jù)完整性受損。我們將STM32F407與SD NAND集成時(shí)可能遇到的初始化問(wèn)題,并提供專(zhuān)業(yè)的解決方案。
    的頭像 發(fā)表于 12-11 10:51 ?940次閱讀
    STM32F407 MCU使用SD NAND?不斷電<b class='flag-5'>初始化</b>失效解決方案

    segger編譯器初始化問(wèn)題

    的圖; 2.第二張圖是該變量在文件中的所有操作,第一行是初始化,該行代碼在初始化部分最后一個(gè),執(zhí)行完就是主循環(huán)了; 3.第2,3行也是對(duì)變量的賦值,在主循環(huán)中; 4.第4行已注釋?zhuān)?5.第6行是對(duì)變量
    發(fā)表于 12-09 18:06

    基于旋轉(zhuǎn)平移解耦框架的視覺(jué)慣性初始化方法

    精確和魯棒的初始化對(duì)于視覺(jué)慣性里程計(jì)(VIO)至關(guān)重要,因?yàn)椴涣嫉?b class='flag-5'>初始化會(huì)嚴(yán)重降低姿態(tài)精度。
    的頭像 發(fā)表于 11-01 10:16 ?967次閱讀
    基于旋轉(zhuǎn)平移解耦框架的視覺(jué)慣性<b class='flag-5'>初始化</b>方法

    TMS320C6000 McBSP初始化

    電子發(fā)燒友網(wǎng)站提供《TMS320C6000 McBSP初始化.pdf》資料免費(fèi)下載
    發(fā)表于 10-26 10:10 ?1次下載
    TMS320<b class='flag-5'>C</b>6000 McBSP<b class='flag-5'>初始化</b>

    如何在i.MX RT微控制器上初始化LWIP協(xié)議棧

    在i.MX RT微控制器上初始化LWIP協(xié)議棧是一個(gè)復(fù)雜但有趣的過(guò)程,它涉及多個(gè)步驟和關(guān)鍵組件的配置.
    的頭像 發(fā)表于 10-12 11:48 ?822次閱讀
    如何在i.MX RT微控制器上<b class='flag-5'>初始化</b>LWIP協(xié)議棧

    Keil中變量不被初始化方法

    有些時(shí)候在我們的應(yīng)用過(guò)程中要求變量有連續(xù)性,或者現(xiàn)場(chǎng)保留,例如Bootloader跳轉(zhuǎn),某種原因的復(fù)位過(guò)程中我們有些關(guān)鍵變量不能被初始化,在不同的編譯環(huán)境下有不同的設(shè)置,本文就這個(gè)操作做總結(jié),分別
    的頭像 發(fā)表于 08-30 11:47 ?1513次閱讀
    Keil中變量不被<b class='flag-5'>初始化</b>方法

    瀚海微SD NAND應(yīng)用之SD協(xié)議存儲(chǔ)功能描述2 初始化命令

    初始化和識(shí)別過(guò)程: 總線激活后,主機(jī)啟動(dòng)卡初始化和識(shí)別過(guò)程。 初始化過(guò)程從SD SEND OP COND (ACMD41)開(kāi)始,通過(guò)設(shè)置其操作條件和OCR中的HCS位。HCS (Host
    的頭像 發(fā)表于 07-22 10:54 ?724次閱讀
    瀚海微SD NAND應(yīng)用之SD協(xié)議存儲(chǔ)功能描述2 <b class='flag-5'>初始化</b>命令