前言
C/C++ 中,「class 類別」是到後來大型程式一定的必備知識,
面試常考的問題自然也包含著 public, protected, private 的比較,
我們可以用最簡單的方式概括這個觀念:
沒有使用「繼承」時,protected = private
public 可以任意取用
private 僅限類別內部成員存取,不可外部存取
protected 繼承時,雖然一樣不允許外部存取,但內部修改是允許的 (相比 private,即使繼承也是不能修改內部成員的值)
範例
private
使用 private 時,我們通常會這樣使用
private 即使繼承也不能去改。
class A:
{
private:
int a_private;
public:
void set_a(){
a_private = 2;
}
}
class B : public A{
public:
void set_a_inheritance(){
// a_private = 3; 不能這樣改 a,會跳錯
}
}
protected
使用 protected 時,我們被允許可以在繼承的函數中修改成員的值。
class A:
{
protected:
int a_protected;
public:
void get_a(){
a_protected = 2;
}
}
class B : public A{
public:
void set_a_inheritance(){
a_protected = 3; // 這樣改 a 沒有問題
}
}
public
public 是最自由可以被使用的成員,通常都會拿來被外部取用,
但也因為太過自由,如果要求是嚴謹的程式設計,例如設計「密碼」這類的東西,
如果太容易就能夠被「外部取得」,則很有可能會有密碼洩漏的風險。
class A:
{
public:
int a_public;
}
// 可被外部修改的意思如下
A obj_A;
obj_A.a_public = 2; // 可以被外部修改,或取得 (如果是密碼類的,就很危險)
A* ptr_A;
ptr_A->a_public = 2; // 可以被外部修改,或取得 (如果是密碼類的,就很危險)
Reference
⭐C++ 基礎用法 相關文章整理⭐: |
---|
1. | 【C++】C++ compile 程式碼 使用 c++ 11 與使用相關的 package |
2. | 【C++】C/C++ 顯示資料的類別 (type) sample code (內含範例程式碼) print C data type, cout C++ data type, get variable type in c++ |
3. | 【C++】C++ 複製 2D array的方法 copy 2d array memcpy sample code (內含範例程式碼) |
⭐Modern C++ ⭐: |
| |
⭐C++ 字串處理相關文章整理⭐: |
1. | 【C++】字串 char string stringstream 相關用法總整理 (內含範例程式碼) 與利用 sprinf, snprinf assign 值的方法 |
2. | 【C++】字串 char string stringstream 「轉換」用法總整理 (內含範例程式碼) |
3. | 【C】printf, fprintf, sprintf, snprintf 相關用法總整理 (內含範例程式碼) |
4. | 【C++】C++ String 用法 連接兩個 String c++ string concat |
⭐C++ 系統偵測相關文章整理⭐: |
1. | 【C++】C++ 利用 dirent.h 計算資料夾的檔案數量 count files sample code (內含範例程式碼) |
2. | 【C++】C++ inotify sample code 偵測指定路徑底下的文件變化 (內有範例程式碼) |
⭐C++ OpenCV 相關文章整理⭐: |
1. | 【OpenCV】c++ OpenCV – 在 ubuntu 上第一次執行 OpenCV 程式 sample code (內含範例程式碼) |
2. | 【OpenCV】c++ OpenCV - 在圖片上寫上文字 cv::putText sample code (內含範例程式碼) |
3. | 【OpenCV】c++ OpenCV - cv::Rect 矩形用法與相關功能函數 sample code (內含範例程式碼) |
4. | 【OpenCV】c++ OpenCV - OpenCV 中的純量 定義顏色 cv::Scalar(255,255,255) color sample code (內含範例程式碼) |
5. | 【OpenCV】用 C++ 計算 iou 的方法 與網路算法常見錯誤(內附範例程式碼) sample code |
⭐C++ Makefile 相關文章整理⭐: |
1. | 【C++ Makefile】- 1 / 嘗試撰寫自己的第一份 Makefile |
2. | 【C++ Makefile】- 2 / 新增自己的變數 |
3. | 【C++ Makefile】- 3 / Makefile 常用變數 -「$@」, 「$^」 |
4. | 【C++ Makefile】- 4 / Makefile 常用 fake target -「.PHONY」
|
5. | 【C++ Makefile】- 5 / Makefile 內建變數 -「$@」, 「$^」, 「$<」, 「$* 」,「$? 」
|
⭐【喜歡我的文章嗎? 歡迎幫我按讚~ 讓基金會請創作者喝一杯咖啡! 】
如果喜歡我的文章,請幫我在下方【按五下Like】 (Google, Facebook 免註冊),會由 「LikeCoin」 贊助作者鼓勵繼續創作,讀者們「只需幫忙按讚,完全不用出錢」哦!
 |
---|