###### tags: `111-1學校上課` # OOP midterm ## OOP定義 ``` 將參數以及方法封裝成物件或類別進行操作 他會有兩個部分組成: 1. State(Data)存放物件的變數 2. Behavior(Method)描述處理事情的方法 並且我們這個過程中需要(Encapsulation)封裝 interface(接口介面)負責告訴我們所有的功能 有兩種方法類型: 1. public 可以直接存外部呼叫 2. private 外部無法呼叫,但內部可以屋較 class是可以繼承的,我們可以將許多東西的公通性寫成物件,實現 就如同: 人 , 狗 , 貓 三種不同物件 但他們都是動物,而動物都會移動或進食,那我們只要為各自定義好 動物會移動也會進食,就不能將物件規整 OOP 也擁有polymorphism(多形),簡單來說可以依照輸入的參數數量or輸入的參數資料,改變型態 over-riding(同方法名稱,不同行為模式) over-loading(通方法名稱,不同參數,不同行為模式) ``` ## 基本C++ ### namespace 命名空間 簡單來說,就是國名,就如同我在台灣也開了一個 CNN,但美國也有一個CNN那該如何區分,我就可以利用國家進行區分,這就是namespace的用途 ```cpp= using namespace std; using std::cin; using std::cout; using std::endl; ``` 若想讓特定區域使用特定namespace的話,可以如下 ```cpp= { using namespace "You Want"; 我要執行的code } ``` ### 運算浮優先度     ### enum列舉 資料會得到,從上而下的順序,可設定數值 ```cpp= //強列舉 enum class Color{ Red, Greed, Bule }; //列舉 enum Color{ Red, Greed, Bule }; ``` ### file io ```cpp= string read = "" fstream inputstream; inputstram.open('test.txt') inputstream >> read; cout<<read; ``` ```cpp= string read = "" ostream outstream; outstram.open('test.txt') outstream << read; outstram.close(); ``` ## 重複繼承問題 可以使用一下方法 ```cpp= #ifndef 名稱 #define 名稱 會重複繼承的物件 #endif ``` ### 新增/刪除動態資料 ```cpp= int * p = new int(100); //可以使用new關鍵字生成 int * p = new int[100]; //可以使用new關鍵字生成 int * p = new int[3]{1,2,3}; //可以使用new關鍵字生成 delete p;//刪除單一 delete [] p;//刪除連續 ``` ### 參數類別 ```cpp= int *設為參數類別,他只會傳指標進 int &設定參數類別為參考,就會直接影響到輸入 ```
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up