物聯(lián)網(wǎng)嵌入式學(xué)習(xí)的內(nèi)容繁雜,很多小伙伴在準(zhǔn)備物聯(lián)網(wǎng)面試的時候,面對眾多知識點無從下手。小千在此為大家整理了物聯(lián)網(wǎng)面試題集錦—C++語言篇,希望能夠幫助大家順利通關(guān)!
1、談?wù)労瘮?shù)的重載條件
在c語言中函數(shù)名必須是唯一的,程序中不允許出現(xiàn)同名函數(shù)。
在c++中允許函數(shù)重名,即在同一作用域內(nèi),具有相同的函數(shù)名,不同參數(shù)列表的一組函數(shù),稱為函數(shù)重載。
函數(shù)重載的條件:同一作用域:參數(shù)得類型,個數(shù),順序不同。
函數(shù)重載實現(xiàn)的原理:
編譯器為了實現(xiàn)函數(shù)重載,也是默認(rèn)為我們做了?些幕后的?作,編譯器用不同的參數(shù)類型來修飾不同的函數(shù)名,如void func(); 編譯器可能會將函數(shù)名修飾成func,當(dāng)編譯器碰到void func(int x),編譯器可能將函數(shù)名修飾為func_int,當(dāng)編譯器碰到void func(int x,char c),編譯器可能會將函數(shù)名修飾為 _func_int_char我這里使用”可能”這個字眼是因為編譯器如何修飾重載的函數(shù)名稱并沒有?個統(tǒng)?的標(biāo)準(zhǔn),所以不同的編譯器可能會產(chǎn)?不同的內(nèi)部名
2、談?wù)刢與c++中struct的不同點
c語?中struct只有數(shù)據(jù) C語言要用struct
c++中的struct不止有數(shù)據(jù) 還有函數(shù) C++可以省略
3、如何理解c++的封裝性?
封裝特性包含兩個方面,?個是變量和函數(shù)合成?個整體,?個是給屬性和函數(shù)增加訪問權(quán)限。
4、談?wù)勀銓++構(gòu)造與析構(gòu)的理解
對象的初始化和清理也是兩個非常重要的安全問題,?個對象或者變量沒有初始時,對其使用后果是未知,同樣的使用完?個變量,沒有及時清理,也會造成?定的安全問題。c++為了給我們提供這種問題的解決方案,構(gòu)造函數(shù)和析構(gòu)函數(shù),這兩個函數(shù)將會被編譯器?動調(diào)用,完成對象初始化和對象清理?作。
無論你是否喜歡,對象的初始化和清理?作是編譯器強(qiáng)制我們要做的事情,即使你不提供初始化操作和清理操作,編譯器也會給你增加默認(rèn)的操作,只是這個默認(rèn)初始化操作不會做任何事,所以編寫類就應(yīng)該順便提供初始化函數(shù)。
構(gòu)造函數(shù)主要作用在于創(chuàng)建對象時為對象的成員屬性賦值,構(gòu)造函數(shù)由編譯器自動調(diào)用,無須手動調(diào)用。 主要用于對象銷毀前系統(tǒng)自動調(diào)用,執(zhí)行?些清理?作。
構(gòu)造函數(shù)和析構(gòu)函數(shù),這兩個函數(shù)將會被編譯器自動調(diào)用,構(gòu)造函數(shù)完成對象的初始化動作,析構(gòu)函數(shù)在對象結(jié)束的時候完成清理工作。
注意:對象的初始化和清理工作是編譯器強(qiáng)制我們要做的事情,即使你不提供初始化操作和清理操作,編譯器也會給你增加默認(rèn)的操作,只是這個默認(rèn)初始化操作不會做任何事。
構(gòu)造函數(shù):實例化對象的時候系統(tǒng)自動調(diào)用
析構(gòu)函數(shù):對象釋放的時候系統(tǒng)自動調(diào)用
構(gòu)造函數(shù)語法:
構(gòu)造函數(shù)函數(shù)名和類名相同,沒有返回類型,連void都不可以,但可以有參數(shù),可以重載
析構(gòu)函數(shù)語法:
析構(gòu)函數(shù)函數(shù)名是在類名前面加”~”組成,沒有返回類型,連void都不可以,不能有參數(shù),不能重載。
更多關(guān)于物聯(lián)網(wǎng)培訓(xùn)的問題,歡迎咨詢千鋒教育在線名師。千鋒教育擁有多年IT培訓(xùn)服務(wù)經(jīng)驗,采用全程面授高品質(zhì)、高體驗培養(yǎng)模式,擁有國內(nèi)一體化教學(xué)管理及學(xué)員服務(wù),助力更多學(xué)員實現(xiàn)高薪夢想。