類的封裝
類通常分爲以下兩個部分
- 類的實現細節
- 類的使用方式
當使用類時,不需要關心其實現細節
- 當創建類時,才需要考慮其內部實現細節
封裝的基本概念
- 並不是類的每個屬性都是對外公開的
- 而一些類的屬性是對外公開的
- 必須在類的表示法中定義屬性和行爲的公開級別
C++中類的封裝
- 成員變量:C++中用於表示類屬性的變量
- 成員函數:C++中用於表示類行爲的函數
- C++中可以給成員變量和成員函數定義訪問界別
- public
- 成員變量和成員函數可以在類的內部和外界訪問和調用
- private
- 成員變量和成員函數只能在類的內部被訪問和調用
- public
類成員的作用域
- 類成員的作用域都只在類的內部,外部無法直接訪問
- 成員函數可以直接訪問成員變量和調用成員函數
- 類的外部可以通過類變量訪問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;
}