程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> 關於【error C3646: 未知重寫說明符】的若干種可能性,errorc3646

關於【error C3646: 未知重寫說明符】的若干種可能性,errorc3646

編輯:C++入門知識

關於【error C3646: 未知重寫說明符】的若干種可能性,errorc3646


如果在程序中出現了error C3646,那麼這個錯誤可能是由多種問題所導致的,這篇文章將對多種錯誤及對應解決方法進行分析。

 

在MSDN的官方網站中,Complier Error C3646的定義為unknown override specifier,並且其解釋為The compiler found a token in the position where it expected to find an override specifier, but the token was not recognized by the compiler.

 

1.循環引用

在分離式編譯中,我們往往習慣將不同的類或者函數分別寫在不同的函數中,提高工作效率。但如果在使用時出現兩個類分別在兩個不同的文件中編寫,並且相互引用,則會出現循環引用,引發此錯誤。

舉例:tire.h/tire.cpp和auto.h/auto.cpp 在tire.h中include auto.h,並定義了一個auto的object,然後在auto.h中又include了tire.h

解決方案:在報錯的那個.h文件的類定義前加上class聲明調用的類(即class 類)。

 

2.語法錯誤

此問題大多因為粗心而導致,比如在某個成員函數中把分號;寫成了中文分號;,將會出現此類錯誤。

解決方案:修改分號

 

3.類的順序錯誤

如果一個類的成員中包含另一個類,則被包含的類的生命一定要在包含的類之前。

舉例:

class Auto {
      Tire tire;
}
 
class Tire {
      int weight;  
}
 
// This will cause error C3656

解決方法:調整類的位置。

 

在遇到這種問題的時候,我們需要透過現象看本質。

 

祝大家聖誕節快樂:)

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved