欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C++中的函數(shù)修飾符深入講解

 更新時(shí)間:2019年02月06日 11:09:27   作者:tlanyan  
這篇文章主要給大家介紹了關(guān)于C++中函數(shù)修飾符的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

前言

C++博大精深,而且不斷擁抱新的變化。本文簡(jiǎn)要總結(jié)一下C++中函數(shù)的修飾符,其中部分在實(shí)際中極少用到。

按修飾符的位置分為函數(shù)名前與函數(shù)名后兩種,以下分別做介紹。

函數(shù)名前

1、返回值類(lèi)型

返回值類(lèi)型是C++中定義函數(shù)的必備部分,這些修飾符包括void,(unsigned) int,bool等內(nèi)置基本數(shù)據(jù)類(lèi)型和自定義類(lèi)型,也包括修飾返回值const關(guān)鍵字(如const int*),還包括C++11中新增的類(lèi)型自動(dòng)推導(dǎo)auto關(guān)鍵字。

2、 template

template關(guān)鍵字聲明函數(shù)是模板函數(shù)。

3、 virtual

virtual關(guān)鍵字聲明函數(shù)是虛函數(shù),可被子類(lèi)覆蓋。

4、 inline

inline關(guān)鍵字提示編譯器應(yīng)將函數(shù)內(nèi)聯(lián)。

5、 static

static修飾類(lèi)的成員函數(shù)時(shí)指示函數(shù)是靜態(tài)成員函數(shù),不從屬于具體對(duì)象;修飾單獨(dú)的函數(shù)時(shí),限定函數(shù)的可見(jiàn)范圍為本文件內(nèi)。

6、 extern

extern關(guān)鍵字聲明一個(gè)定義在外部的函數(shù)

7、 explicit

explicit關(guān)鍵字在C++11新增,只用于構(gòu)造函數(shù),指定構(gòu)造函數(shù)要顯式定義,不能隱式轉(zhuǎn)換。

8、 friend

friend關(guān)鍵字聲明類(lèi)的友元函數(shù),在函數(shù)內(nèi)可直接訪問(wèn)對(duì)象的私有或受保護(hù)成員及成員函數(shù)。

9、 constexpr

C++11中新增,指示函數(shù)返回常量表達(dá)式(可以簡(jiǎn)單理解為返回字面量)。

函數(shù)名后

置于函數(shù)名后的修飾符有兩種,第一種使用等號(hào)(=),第二種直接修飾。

1、使用等號(hào)

此類(lèi)較為簡(jiǎn)單,總共有三種:

=0:只能用于虛函數(shù),表示函數(shù)為純虛函數(shù)。

=default:C++11新增,只能用于編譯器提供默認(rèn)實(shí)現(xiàn)的特殊成員函數(shù),指示使用默認(rèn)實(shí)現(xiàn)。

=delete:C++11新增,只能用于編譯器提供默認(rèn)實(shí)現(xiàn)的特殊成員函數(shù),指示編譯器應(yīng)該刪除該函數(shù)的默認(rèn)實(shí)現(xiàn)。

2、直接修飾

種類(lèi)繁多,本人已知的修飾符包括:

const

表示函數(shù)不會(huì)修改對(duì)象(或者說(shuō)調(diào)用期間對(duì)象不變),注意不包括mutable修飾的成員變量,可參考本人之前文章:C++中的mutable和volatile。

volatile

類(lèi)似于const修飾的函數(shù),表示對(duì)象狀態(tài)可能隨時(shí)會(huì)改變;const修飾的函數(shù)內(nèi)只能調(diào)用自身的const成員方法,同理volatile函數(shù)內(nèi)也只能調(diào)用自身volatile成員函數(shù)。

&

C++11引入的功能,左值引用限定符,指示函數(shù)只能被左值對(duì)象調(diào)用。

&&

C++11引入,右值引用限定符,指示函數(shù)只能被右值調(diào)用。如果函數(shù)沒(méi)有引用限定符修飾,左值和右值均可調(diào)用。一個(gè)引用限定例子:

 #include <iostream>
 struct S {
 void f() & { std::cout << "lvalue\n"; }
 void f() &&{ std::cout << "rvalue\n"; }
 };

 int main(){
 S s;
 s.f();   // 打印“ lvalue ”
 std::move(s).f(); // 打印“ rvalue ”
 S().f();   // 打印“ rvalue ”
 }

override

C++11引入的功能,聲明成員函數(shù)覆蓋父類(lèi)的虛函數(shù)。聲明為override后,子類(lèi)聲明時(shí)可不寫(xiě)virtual。

final

C++11引入,指示函數(shù)是最終實(shí)現(xiàn),子類(lèi)不應(yīng)當(dāng)再定義或覆蓋,可與override同時(shí)使用。

noexcept

C++11引入,修飾函數(shù)是否會(huì)拋出異常。

throw

指示函數(shù)拋出異常及類(lèi)型,C++11起被廢棄。

總結(jié)

本文簡(jiǎn)要概括的列出了C++定義函數(shù)的修飾符。需要注意的是,嚴(yán)格來(lái)說(shuō)上述內(nèi)容中并不全是修飾符,部分僅是語(yǔ)法結(jié)構(gòu)。

好了,以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,如果有疑問(wèn)大家可以留言交流,謝謝大家對(duì)腳本之家的支持。

相關(guān)文章

  • visual studio code 編譯運(yùn)行html css js文件的教程

    visual studio code 編譯運(yùn)行html css js文件的教程

    這篇文章主要介紹了visual studio code 如何編譯運(yùn)行html css js文件,本文通過(guò)圖文實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-03-03
  • 詳解C語(yǔ)言實(shí)現(xiàn)推箱子的基本功能

    詳解C語(yǔ)言實(shí)現(xiàn)推箱子的基本功能

    這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言實(shí)現(xiàn)推箱子的基本功能的方法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助
    2022-02-02
  • C++ 風(fēng)靡一時(shí)的連連看游戲的實(shí)現(xiàn)流程詳解

    C++ 風(fēng)靡一時(shí)的連連看游戲的實(shí)現(xiàn)流程詳解

    游戲“連連看”是源自臺(tái)灣的桌面小游戲,自從流入大陸以來(lái)風(fēng)靡一時(shí),也吸引眾多程序員開(kāi)發(fā)出多種版本的“連連看”。這其中,顧芳編寫(xiě)的“阿達(dá)連連看”以其精良的制作廣受好評(píng),這也成為顧方“阿達(dá)系列軟件”的核心產(chǎn)品。并于2004年,取得國(guó)家版權(quán)局的計(jì)算機(jī)軟件登記證書(shū)
    2021-11-11
  • VS2019配置BOOST的方法(v1.70.0庫(kù))

    VS2019配置BOOST的方法(v1.70.0庫(kù))

    這篇文章主要介紹了VS2019配置BOOST的方法(v1.70.0庫(kù)),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-08-08
  • C++實(shí)現(xiàn)LeetCode(210.課程清單之二)

    C++實(shí)現(xiàn)LeetCode(210.課程清單之二)

    這篇文章主要介紹了C++實(shí)現(xiàn)LeetCode(210.課程清單之二),本篇文章通過(guò)簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-08-08
  • C++容器適配器的概念與示例

    C++容器適配器的概念與示例

    C++?STL(標(biāo)準(zhǔn)模板庫(kù))是一套功能強(qiáng)大的?C++?模板類(lèi),提供了通用的模板類(lèi)和函數(shù),這些模板類(lèi)和函數(shù)可以實(shí)現(xiàn)多種流行和常用的算法和數(shù)據(jù)結(jié)構(gòu),如向量、鏈表、隊(duì)列、棧,今天我們來(lái)探究一下stl容器適配器的使用吧
    2023-01-01
  • Qt使用TabWidget實(shí)現(xiàn)多窗體功能

    Qt使用TabWidget實(shí)現(xiàn)多窗體功能

    Qt 是一個(gè)跨平臺(tái)C++圖形界面開(kāi)發(fā)庫(kù),利用Qt可以快速開(kāi)發(fā)跨平臺(tái)窗體應(yīng)用程序,在Qt中我們可以通過(guò)拖拽的方式將不同組件放到指定的位置,本章將重點(diǎn)介紹TabWidget標(biāo)簽組件的常用方法及靈活運(yùn)用,需要的朋友可以參考下
    2023-12-12
  • 整型數(shù)據(jù)在內(nèi)存中存儲(chǔ)方式的講解

    整型數(shù)據(jù)在內(nèi)存中存儲(chǔ)方式的講解

    今天小編就為大家分享一篇關(guān)于整型數(shù)據(jù)在內(nèi)存中存儲(chǔ)方式的講解,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧
    2019-02-02
  • C語(yǔ)言鏈表與單鏈表詳解

    C語(yǔ)言鏈表與單鏈表詳解

    鏈表是一種物理存儲(chǔ)結(jié)構(gòu)上非連續(xù)、非順序的存儲(chǔ)結(jié)構(gòu),數(shù)據(jù)元素的邏輯順序是通過(guò)鏈表中的指針鏈接次序?qū)崿F(xiàn)的,本章帶你詳細(xì)了解鏈表與單鏈表
    2022-02-02
  • 詳解C++中stoi/stol/stoll函數(shù)的用法

    詳解C++中stoi/stol/stoll函數(shù)的用法

    這篇文章主要為大家詳細(xì)介紹了C++中stoi、stol、stoll函數(shù)的具體用法,文中的示例代碼講解詳細(xì),對(duì)我們學(xué)校C++有一點(diǎn)的幫助,需要的可以參考一下
    2023-03-03

最新評(píng)論