error LNK1169 : 找到一個或多個重定義的符號

一般解決方法

一般情況下在學習數據結構的時候會在程序中添加類,這個時候就有可能產生重定義的問題,解決的辦法就是添加extern聲明,上過c語言的都知道。例如:

現有三個文件:
a.h
a.cpp
main.cpp
其中a.h是所創建類的聲明以及函數聲明。a.cpp是這個類的實現,main.cpp是我們的主函數。若a.h裏面有一個或者若干個變量,假設其中有一個int類型的變量cnt,因爲在a.cpp和main.cpp中我們包含了a.h,所以同樣使用了a.h中的變量cnt,這時候就要添加extern聲明。我們把a.h中的變量cnt重新聲明:

extern int cnt;

在a.cpp中也要對cnt進行聲明,但不用加extern

int cnt;

如果這個變量是有初值的,要在a.cpp文件中聲明,而不是a.h中

int cnt = 233;

至於main.cpp是不是要更改呢?答案是不用,不管你有沒有使用這個變量,都是不需要的。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章