c++學習筆記 一(geekband)

c++programs的代碼基本形式

1.頭文件(功能模塊的聲明)

2主函數

3其他函數的定義


頭文件中的防衛式聲明

當我們使用#include包含.h文件是,為了避免出現重復定義的現象,比如在頭文件中定義了一個類,如果在把頭文件包含到一個定義了與他相同類的.cpp的文件中,那么就會由于重復定義出現編譯錯誤。所以防衛式聲明是十分的有必要。形式如下

#ifndef HEAD_H(大寫不是必須的)

#define HEAD_H

......

#endif


inline(內聯)函數

與預處理類似,在編譯期間直接計算出結果,但是是否是一個內聯函數取決于編譯器,一般比較簡單的函數都可以實現內聯。

訪問級別

public ? 類的外部接口

private ? 只可以由本類成員訪問,外部訪問非法

protect ?與私有相似,區別在于繼承


friend友元

改變訪問級別,使得外部函數也可訪問類類型對象的所以數據和功能

void friend ?comple();

所以可以說class的各個函數互為friend函數


構造函數

與內置類型的初始化相似,由類定義的類類型,構造函數決定了類類型對象的初始化方式。

無返回值,支持默認參數的初始化,重載,內聯

注意:若定義了參數及其類型相同的兩個構造函數,一個有默認值一個沒有,這種情況是未定義的,因為編譯器將這兩個函數視為相同的。

私有構造函數

因為是私有成員所以不能被外部訪問,但可以在內部定義對象,如果將其定義為static,那么就可以得到一個單對象。

常成員函數

在成員函數的參數表后面加const(頂層const)(數據只讀)

1.常成員函數不能更新對象的數據成員

2.當一個對象被聲明為常對象,則不能通過該對象調用該類中的非const成員函數

傳值 與 傳參

傳值相當與拷貝一份備份

傳參相當于傳遞一個指針

操作符的重載

成員函數:對于一個2元操作符來說的重載函數直接一個參數,左邊是參數是默認的為其類類型對象,右邊參數是操作是另一個對象,

非成員函數:對于2個操作數的重載函數要兩個參數,不可以重載內置類型的操作符重載。

臨時對象

typname()

如果沒被保存,執行完這條語句就將消失。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 前言 把《C++ Primer》[https://book.douban.com/subject/25708312...
    尤汐Yogy閱讀 9,537評論 1 51
  • C++文件 例:從文件income. in中讀入收入直到文件結束,并將收入和稅金輸出到文件tax. out。 檢查...
    SeanC52111閱讀 2,855評論 0 3
  • 第一天 一.內聯函數(inline) 函數調用的時候需要建立棧內存環境,進行參數傳遞,并產生程序執行轉移,這些工作...
    陳果123閱讀 1,145評論 0 1
  • 兩天時間→兩本書→第一份視覺筆記
    Cindy118125閱讀 279評論 0 0
  • 火車篇 這是兒子第一次乘火車旅行,上車不久,他就體驗到了火車的"方便面,火腿,礦泉水,飲料",我問他還有什么,他正...
    風吹來一陣花香閱讀 144評論 0 3