<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 功能強大 支持多語言、二開方便! 廣告
                [TOC] ## 構造函數和析構函數 ``` class abc { public: abc(int a){ cout << "構造 abc "; } }; ``` ## 成員初始化表 引子 ``` class CExample { public: int a; float b; //構造函數初始化列表 CExample(): a(0),b(8.8) {} //構造函數內部賦值 CExample() { a=0; b=8.8; } }; ``` ### 初始化類的成員方式 1. 使用初始化列表, 2. 是在構造函數體內進行賦值操作 對于內置類型,如int, float等,差別不大,但是對于類類型來說,最好使用初始化列表 - 能使用初始化列表的時候盡量使用初始化列表 ### 必須使用初始化列表的構造函數場景 1. 成員類型是沒有默認構造函數的類。若沒有提供顯示初始化式,則編譯器隱式使用成員類型的默認構造函數,若類沒有默認構造函數,則編譯器嘗試使用默認構造函數將會失敗 2. .const 成員或引用類型的成員。因為 const 對象或引用類型只能初始化,不能對他們賦值 ### 初始化數據成員與對數據成員賦值區別 1.內置數據類型,復合類型(指針,引用)- 在成員初始化列表和構造函數體內進行,在性能和結果上都是一樣的 1. 在構造函數中傳值 <details> <summary>main1.hpp</summary> ``` class Fraction{ public: Fraction(int num,int dem); Fraction(int num); Fraction(); } ``` </details> <br /> <details> <summary>main1.cpp</summary> ``` Fraction::Fraction(int num, int dem):m_Number(num),m_Denominator(dem) { } Fraction::Fraction(int num):m_Number(num),m_Denominator(0) { } Fraction::Fraction():m_Number(0),m_Denominator(0) { } ``` </details> <br /> 2. 有參數時的傳遞,參數必須傳送給基類 <details> <summary>main.cpp</summary> ``` #include <iostream> #include <string> using namespace std; class A { public: int age; A(int a):age(a) { cout<< "create A"<< a <<endl; } }; class B:public A { public: string name; B(int a,string n):A(a),name(n) { cout << "create B"<<endl; } }; int main() { B b(123,"idcpj"); cout << b.age<<b.name<< endl; return 0; } ``` </details> <br/> 3. 子對象中初始化成員變量 <details> <summary>main.cpp</summary> ``` // Point class Point{ public: Point(int x,int y):m_x(x),m_y(y){} QString toString(){ return QString("%1 %2").arg(m_x).arg(m_y); } private: int m_x,m_y; }; // Square class Square{ public: Square(int x1,int y1,int x2,int y2 ):p1(x1,y1),p2(x2,y2){} QString toString(){ return QString("%1 %2").arg(p1.toString()).arg(p2.toString()); } private: Point p1,p2; }; ``` </details> <br/>
                  <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>

                              哎呀哎呀视频在线观看