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

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                最近被自己坑兒了一把,改別人的代碼,最后編譯器這樣報錯的: **error C2653: not a class or namespace name** 簡單描述一下: 有一個類A,聲明和實現分別位于 a.h和a.cc中 有一個類B,聲明和實現分別位于 b.h和b.cc中 類A的某個成員函數需要B類類型作為參數 類B的某個成員函數需要A類類型作為參數 a.h文件如下: ~~~ #ifndef A_H_ #define A_H_ #include "b.h" class A { public: enum State { RIGHT = 0; ERROR = 1; } void send (B b); ... }; #endif ~~~ a.cc文件省略,無影響 b.h文件是這樣的: ~~~ #ifndef B_H_ #define B_H_ #include "a.h" class B { public: void send (A::State state); ... }; ~~~ 此時呢,編譯器就會報錯: error C2653: A not a class or namespace name 這時候我們的第一反應往往是查看b.h中是否包含了A類所在的頭文件,即是否包含了a.h文件。 但是坑爹的是,我們明明包含了呀,怎么還會報錯呢? 好吧,就是相互包含的事兒,編譯器已經蒙掉了。 簡而言之就是不要包含不必要的頭文件。 偶對了 差點忘告訴怎么修改了? 首先,我們是把類A和B放在了一個命名空間中,即對A和B都進行了 namespace KENG{ }封裝。 所以這個時候,我們可以在A中不包含B的頭文件,而改成前置聲明、、、、、 ~~~ #ifndef A_H_ #define A_H_ class B; class A { public: enum State { RIGHT = 0; ERROR = 1; } void send (B b); ... }; #endif ~~~ 大功告成! 我們用#ifndef躲過了重復包含頭文件的坑兒,但是我們也不能肆無忌憚的包含,更要避免相互包含的情況!!!
                  <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>

                              哎呀哎呀视频在线观看