這些是我一直收到錯誤:即時對象初始化失敗,錯誤LNK2005
LNK2005 "class Sally TestObject" ([email protected]@[email protected]@A) already defined in Source.obj Project2 c:\Users\W8User\documents\visual studio 2015\Projects\Project2\Project2\Source1.obj
和
LNK1169 one or more multiply defined symbols found Project2 c:\users\w8user\documents\visual studio 2015\Projects\Project2\Debug\Project2.exe
我真的不明白的地方都來自這些錯誤。我試過在其他SO線程或微軟網站上搜索,但沒有任何幫助。
這些都是我的文件:
Source.cpp
#include <iostream>
#include "Header.h"
int main() {
std::cout << TestObject.ReturnTruth();
return 0;
}
Header.h
#pragma once
class Sally
{
public:
bool ReturnTruth();
} TestObject;
Source1.cpp
#include "Header.h"
bool Sally::ReturnTruth()
{
return 1;
}
我所知道的是將對象初始化移動到Source.cpp文件中並不會立即在頭文件中執行它,但是由於即時初始化是可能的,爲什麼我不使用它?
你說的「即時初始化」的意思是,爲什麼你覺得這個應該工作? – aschepler
在頭文件中有一個對象**定義**('TestObject')。不要這樣做。 –