<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>

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                # 委托構造函數(Delegating constructors) 在C++98中,如果你想讓兩個構造函數完成相似的事情,可以寫兩個大段代碼相同的構造函數,或者是另外定義一個init()函數,讓兩個構造函數都調用這個init()函數。例如: ``` class X { int a; // 實現一個初始化函數 validate(int x) { if (0<x && x<=max) a=x; else throw bad_X(x); } public: // 三個構造函數都調用validate(),完成初始化工作 X(int x) { validate(x); } X() { validate(42); } X(string s) { int x = lexical_cast<int>(s); validate(x); } // … }; ``` 這樣的實現方式重復羅嗦,并且容易出錯。并且,這兩種方式的可維護性都很差。所以,在C++0x中,我們可以在定義一個構造函數時調用另外一個構造函數: ``` class X { int a; public: X(int x) { if (0<x && x<=max) a=x; else throw bad_X(x); } // 構造函數X()調用構造函數X(int x) X() :X{42} { } // 構造函數X(string s)調用構造函數X(int x) X(string s) :X{lexical_cast<int>(s)} { } // … }; ``` (譯注:在一個構造函數中調用另外一個構造函數,這就是委托的意味,不同的構造函數自己負責處理自己的不同情況,把最基本的構造工作委托給某個基礎構造函數完成,實現分工協作。) 參考: + the C++ draft section 12.6.2 + N1986==06-0056 Herb Sutter and Francis Glassborow: Delegating Constructors (revision 3).
                  <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>

                              哎呀哎呀视频在线观看