<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++類中成員變量的初始化有兩種方式: 構造函數初始化列表和構造函數體內賦值。下面看看兩種方式有何不同。 ~~~ #include "stdafx.h" #include <string> using namespace std; class Company { public: // 構造函數初始化列表賦值 Company(string name,string addr,string boss,int staffCount) :m_sName(name) ,m_sAddr(addr) ,m_sBoss(boss) ,m_nStaff(staffCount) { } /*// 一般賦值的方法 Company(string name,string addr,string boss,int staffCount) { m_sName = name; m_sAddr = addr; m_sBoss = boss; m_nStaff = staffCount; }*/ private: string m_sName; string m_sAddr; string m_sBoss; int m_nStaff; public: void printInfo() { printf("The m_sName is = %s\n",m_sName.c_str()); printf("The m_sAddr is = %s\n",m_sAddr.c_str()); printf("The m_sBoss is = %s\n",m_sBoss.c_str()); printf("The m_nStaff is = %d\n",m_nStaff); } }; int main(int argc, _TCHAR* argv[]) { Company* pComp = new Company("Ghgame","Tianfusoftwarepark","dinghq.alex",80); pComp->printInfo(); delete pComp; system("pause"); return 0; } ~~~ 還是看看打印: ![](https://box.kancloud.cn/2016-08-19_57b6ce7ec38c2.jpg) 通過打印來看初始化還是起到作用的(學程序就是多寫多調試多打印看看結果嘛)。 但是,如果要是有一個子類,繼承了它,子類構造函數的初始化就有點問題了。 ~~~ class Subsidiary : public Company { public: /*// 如果這樣寫是不行的,父類Company沒有相同的構造函數 Subsidiary(string name,string addr,string boss,int staffCount,int createDate){};*/ Subsidiary(string name,string addr,string boss,int staffCount,int createDate) // 必須使用初始化列表增加對父類的初始化 :Company(name,addr,boss,staffCount) ,m_nCreateDate(createDate) {}; ~Subsidiary(){}; private: // 當子類需要多加自己的參數的時候就要顯式調用父類的構造函數初始化 int m_nCreateDate; }; ~~~ 這樣一個子類如果要給父類賦值同時加上自己的m_nCreateDate屬性,構造函數就不能像注釋中那樣用一般的構造函數來賦值了,要用構造函數的初始化列表來賦值。 也只理解到這里。
                  <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>

                              哎呀哎呀视频在线观看