<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                # C++ 中的 OOP 概念 > 原文: [https://beginnersbook.com/2017/08/cpp-oops-concepts/](https://beginnersbook.com/2017/08/cpp-oops-concepts/) 面向對象編程是一種通過使用對象將問題分解為更小問題來解決復雜問題的方法。在面向對象編程(通常稱為 OOP)之前,程序是用過程語言編寫的,它們只是一長串指令。另一方面,OOP 就是創建可以交互的對象,這使得在 OOP 中開發程序變得更容易,因為我們可以理解它們之間的關系。 ## 面向對象編程(OOP) 在面向對象編程中,我們使用類和對象編寫程序,利用 OOP 的特征,如**抽象**,**封裝**,**繼承**和**多態**。 ### 類和對象 類就像數據成員和函數的藍圖,對象是類的實例。例如,假設我們有一個類 **`Car`** ,它有數據成員(變量),如`speed`,`weight`,`price`,和函數,如`gearChange()`,`slowDown()`,`brake()`等。現在讓我們說我創建了一個名為`FordFigo`的類的對象,它使用這些數據成員和函數,并為它們提供自己的值。同樣,我們可以使用藍圖(類)創建任意數量的對象。 ```cpp //Class name is Car class Car { //Data members char name[20]; int speed; int weight; public: //Functions void brake(){ } void slowDown(){ } }; int main() { //ford is an object Car ford; } ``` ### 抽象 [抽象](https://beginnersbook.com/2017/09/abstraction-in-c-with-example/)是隱藏用戶不相關細節的過程。例如,當您發送短信時,您只需鍵入消息,選擇聯系人并單擊發送,手機會顯示消息已發送,單擊發送時背景中實際發生的情況對您是隱藏的,因為它對你不相關。 ### 封裝 [封裝](https://beginnersbook.com/2017/09/cpp-encapsulation/)是將數據和函數組合成像膠囊這樣的單個單元的過程。這是為了避免從類外部訪問私有數據成員。為了實現封裝,我們將類的所有數據成員設為私有并創建公共函數,使用它們我們可以從這些數據成員獲取值或為這些數據成員設置值。 ### 繼承 [繼承](https://beginnersbook.com/2017/08/cpp-inheritance/)是一個特性,子類的對象使用該特性獲取父類的屬性。 ```cpp #include <iostream> using namespace std; class ParentClass { //data member public: int var1 =100; }; class ChildClass: public ParentClass { public: int var2 = 500; }; int main(void) { ChildClass obj; } ``` 現在這個對象`obj`可以使用`ParentClass`的屬性(例如變量`var1`)。 ### 多態 [函數重載](https://beginnersbook.com/2017/08/cpp-function-overloading/)和運算符重載是多態的例子。多態是一種在不同情況下對象表現不同的特性。 在函數重載中,我們可以有多個函數,具有相同名稱但不同數量,類型或順序的參數。 #### 多態實例 ```cpp #include <iostream> using namespace std; class Sum { public: int add(int num1,int num2){ return num1 + num2; } int add(int num1, int num2, int num3){ return num1 + num2 + num3; } }; int main(void) { //Object of class Sum Sum obj; //This will call the second add function cout<<obj.add(10, 20, 30)<<endl; //This will call the first add function cout<<obj.add(11, 22); return 0; } ``` **輸出:** ```cpp 60 33 ```
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看