博覽網C++學習第一週

       概述:編程

       C++語言很是的複雜,有不少種編程範式:面向對象範式,泛型編程範式,元編程範式等。之因此複雜是由於C++語言所描述的真是世界是複雜的。C++語言經歷了一系列的發展,總的原則是要讓編程方便而效率又不會損失太多。函數

       本系列課程主要學習面向對象編程,也就是使用C++語言中的面向對象範式。學習

       本週主要學習C++中最簡單的類的實現:不帶指針的類的實現。這個其實和麪向對象沒什麼關係,主要仍是強調封裝,把數據和操做數據的函數放在一塊兒,這個稱爲「基於對象」的設計,並且仍是「基於對象」設計中最簡單的帶指針的類的實現。this

       其實,帶不帶指針不是本質,本質是類的全部成員都具備合適的內存管理行爲(由於都是值類型,class默認爲值類型生成合適的內存管理代碼)。設計

       細節:指針

1. 頭文件由C到C++的變化如 #include <stdio.h>  ---> #include <cstdio>對象

2. 頭文件中的防衛式聲明---同C語言內存

3. inline函數可實如今類的定義中(無需指定inline),或在.h文件中實如今類外(必須指定inline).inline只是一種請求,複雜的函數的這種請求基本不可能成功。資源

4. class的訪問權限:private,protected,public編譯器

5. 函數的參數能用引用就必須用引用,能加const就必須加const

6. 友元函數和友元類能夠直接訪問其朋友類的private域

7. this指針即指向調用函數對象的指針,其實和C無本質區別,如C++中Obj.some_func(param)被編譯器修改成C中對應的的 some_func( &pObj, param );其中&pObj就是this指針的實參

8. 三類很是重要的函數:

    a) 構造函數(對象如何產生)

    b) 析構函數(對象如何消亡)

    c) 複製控制類函數( 拷貝構造函數和operator=() )描述對象如何被複制

    本週的類不涉及資源管理,並是值類型,因此只須要實現構造函數,其他兩類函數,C++語言默認生成的就足夠好了。

9. 運算符重載

    這個要謹慎使用,有無數的坑等着你,最好能不使用,而直接使用普通的函數。不過,對於一些類,人們經常用運算符來操做它們,也可使用一下運算符重載,當心,當心必定要當心!

相關文章
相關標籤/搜索