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

C++?常量成員函數(shù)學習筆記

 更新時間:2023年10月26日 09:58:32   作者:Totn  
這篇文章主要為大家介紹了C++?常量成員函數(shù)學習筆記,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪

C++ 成員函數(shù)

C++的類中, 在成員函數(shù)的函數(shù)聲明有末尾使用const 修飾, 則表明該函數(shù)為常量成員函數(shù).

它具有以下兩個特點:

  • 常量性: 常量成員函數(shù)約定不會修改類的任何數(shù)據(jù)成員, 即在函數(shù)體內不能修改類的任何非靜態(tài)變量和調用任何非常量成員函數(shù).
  • 對象調用: 常量成員函數(shù)可以被常量對象和非常量對象調用, 對于常量對象, 只能調用常量成員函數(shù);而對于非常量對象, 常量成員函數(shù)和非常量成員函數(shù)都可以調用.

(常量調常量, 非常隨便調)

常量成員對象的定義

class Myclass {
public:
    void setName(const std::string& newName); // 非常量成員函數(shù)
    void print() const;                  // 常量成員函數(shù)
private: 
    std::string name;
};
void Myclass::setName(const std::string& newName) {
    name = newName;
}
// 常量成員函數(shù), 不會修改對象自己的數(shù)據(jù)
void Myclass::print() const {
    std::cout << "Myclass name: " << name << std::endl;
}
int main() {
    Myclass myc;
    myc::setName("Good");
    myc::print(); // output: "Myclass name: Good"
    const Myclass constMycls;
    // constMycls是常量對象, 所以不能調用setName
    constMyclass::print(); // output: "Myclass name: " name是空值
}

關于常量引用

在C++中,函數(shù)參數(shù)的類型可以分為傳值調用(by value)、引用調用(by reference)和常量引用調用(by const reference)三種方式。在以上代碼中,const std::string& newName是使用常量引用調用方式來傳遞參數(shù)。

使用const關鍵字修飾參數(shù)類型std::string&,表示這個引用參數(shù)是一個常量引用,即在函數(shù)內部不允許修改傳入的參數(shù)。這樣設計的目的有以下幾點意義:

  • 避免不必要的拷貝:使用常量引用作為參數(shù),避免了對傳入的字符串對象進行不必要的拷貝。如果不使用引用方式,而是直接使用std::string newName,則在函數(shù)調用時會進行一次拷貝構造,可能存在性能開銷和內存消耗。
  • 支持傳遞常量和非常量對象:使用常量引用作為參數(shù),可以接受傳入的常量字符串(const std::string)和非常量字符串(std::string),提高了函數(shù)的通用性。
  • 保證不修改傳入的參數(shù):使用const關鍵字修飾參數(shù)類型,可以在函數(shù)內部明確表明該函數(shù)不會修改傳入的參數(shù),提升了代碼的可讀性,并保護了傳入的字符串對象不會被意外修改。

總結

使用const std::string&作為參數(shù)類型,既可以避免不必要的拷貝開銷,又能夠支持傳遞常量和非常量對象,并且明確表示函數(shù)不會修改傳入的參數(shù)。這樣設計可以提高代碼的效率和可讀性。

以上就是C++ 常量成員函數(shù)學習筆記的詳細內容,更多關于C++ 常量成員函數(shù)的資料請關注腳本之家其它相關文章!

相關文章

  • C++ 構造函數(shù)中使用new時注意事項

    C++ 構造函數(shù)中使用new時注意事項

    本文主要介紹了C++ 構造函數(shù)中使用new時注意事項。具有很好的參考價值,下面跟著小編一起來看下吧
    2017-02-02
  • Qt實現(xiàn)棋盤游戲

    Qt實現(xiàn)棋盤游戲

    這篇文章主要為大家詳細介紹了Qt實現(xiàn)棋盤游戲,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-01-01
  • C++函數(shù)中return語句的使用方法

    C++函數(shù)中return語句的使用方法

    C++中的return語句是函數(shù)中一個重要的語句,return語句用于結束當前正在執(zhí)行的函數(shù),并將控制權返回給調用此函數(shù)的函數(shù),需要的朋友可以了解下
    2012-12-12
  • C++實現(xiàn)廣度優(yōu)先搜索實例

    C++實現(xiàn)廣度優(yōu)先搜索實例

    這篇文章主要介紹了C++實現(xiàn)廣度優(yōu)先搜索,對于C++程序員來說非常有借鑒價值,需要的朋友可以參考下
    2014-08-08
  • C語言的程序環(huán)境與預處理你真的了解嗎

    C語言的程序環(huán)境與預處理你真的了解嗎

    這篇文章主要為大家詳細介紹了C語言的程序環(huán)境與預處理,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-02-02
  • 基于QT繪制一個漂亮的預警儀表

    基于QT繪制一個漂亮的預警儀表

    這篇文章主要為大家詳細介紹了如何基于QT繪制一個漂亮的預警儀表,文中的示例代碼講解詳細,具有一定的學習價值,感興趣的可以了解一下
    2023-04-04
  • linux之awk命令的用法

    linux之awk命令的用法

    awk是一個非常棒的數(shù)字處理工具。相比于sed常常作用于一整行的處理,awk則比較傾向于將一行分為數(shù)個“字段”來處理。運行效率高,而且代碼簡單,對格式化的文本處理能力超強
    2013-10-10
  • Qt實現(xiàn)制作簡單的計算器

    Qt實現(xiàn)制作簡單的計算器

    計算器是我們生活中很常見的東西,它可以由多種語言多種方式來實現(xiàn)。本文主要介紹的是利用Qt實現(xiàn)的簡易計算器的制作,文中的示例代碼講解詳細,需要的可以參考一下
    2022-12-12
  • C++函數(shù)指針的用法詳解

    C++函數(shù)指針的用法詳解

    這篇文章主要為大家介紹了C++函數(shù)指針的用法,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助

    2022-01-01
  • C語言函數(shù)之memcpy函數(shù)用法實例

    C語言函數(shù)之memcpy函數(shù)用法實例

    memcpy函數(shù)用于把資源內存(src所指向的內存區(qū)域)拷貝到目標內存(dest所指向的內存區(qū)域),下面這篇文章主要給大家介紹了關于C語言函數(shù)之memcpy函數(shù)用法的相關資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-08-08

最新評論