LNK2005

今天在寫一個較大的工程時,在編譯時出現了LNK2005,也就是xxx在.obj中重定義的問題,查了一下,是在一個頭文件裏寫了一個操作符重載。儘管在所有包含這個頭文件的時候我都寫了#pragma once,但是仍然出現了這個問題。將頭文件中改爲操作符重載聲明,而實現寫在對應的.cpp文件中,就解決了這個問題。不知道使用#ifndef #def #endif組合能不能解決這個問題  。

這個bug提示我們,不要在頭文件中進行定義,頭文件中應只寫聲明。

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