LNK2005

今天在写一个较大的工程时,在编译时出现了LNK2005,也就是xxx在.obj中重定义的问题,查了一下,是在一个头文件里写了一个操作符重载。尽管在所有包含这个头文件的时候我都写了#pragma once,但是仍然出现了这个问题。将头文件中改为操作符重载声明,而实现写在对应的.cpp文件中,就解决了这个问题。不知道使用#ifndef #def #endif组合能不能解决这个问题  。

这个bug提示我们,不要在头文件中进行定义,头文件中应只写声明。

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