这些是我一直收到错误:即时对象初始化失败,错误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')。不要这样做。 –