9、不一樣的C++系列--類與封裝

類的封裝


  • 類通常分爲以下兩個部分

    • 類的實現細節
    • 類的使用方式
  • 當使用類時,不需要關心其實現細節

  • 當創建類時,才需要考慮其內部實現細節
  • 封裝的基本概念

    • 並不是類的每個屬性都是對外公開的
    • 而一些類的屬性是對外公開的
    • 必須在類的表示法中定義屬性和行爲的公開級別
  • C++中類的封裝

    • 成員變量:C++中用於表示類屬性的變量
    • 成員函數:C++中用於表示類行爲的函數
    • C++中可以給成員變量和成員函數定義訪問界別
      • public
        • 成員變量和成員函數可以在類的內部和外界訪問和調用
      • private
        • 成員變量和成員函數只能在類的內部被訪問和調用

類成員的作用域


  • 類成員的作用域都只在類的內部,外部無法直接訪問
  • 成員函數可以直接訪問成員變量和調用成員函數
  • 類的外部可以通過類變量訪問public成員
  • 類成員的作用域與訪問級別沒有關係
  • C++中用struct定義的類中所有成員默認爲public

舉個例子:

#include <stdio.h>

int i = 1;

struct Test
{
private:
    int i;

public:
    int j;

    int getI()
    {
        i = 3;

        return i;
    }
};

int main()
{
    int i = 2;

    Test test;

    test.j = 4;

    printf("i = %d\n", i);              // i = 2;
    printf("::i = %d\n", ::i);          // ::i = 1;
    // printf("test.i = %d\n", test.i);    // Error
    printf("test.j = %d\n", test.j);    // test.j = 4
    printf("test.getI() = %d\n", test.getI());  // test.getI() = 3

    return 0;
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章