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