Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/141.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在C+中包含文件时重新定义函数+;(错误LNK2005) 我是C++新手,我有一个基本的疑惑。br> 我正在创建一个法语动词变位应用程序 我有两个文件,一个Conjugator.cpp文件和一个serverbs.cpp文件。 我希望将大部分函数保留在服务器源文件中,并使用conjugator 文件来使用这些函数_C++_Redefinition_Lnk2005 - Fatal编程技术网

在C+中包含文件时重新定义函数+;(错误LNK2005) 我是C++新手,我有一个基本的疑惑。br> 我正在创建一个法语动词变位应用程序 我有两个文件,一个Conjugator.cpp文件和一个serverbs.cpp文件。 我希望将大部分函数保留在服务器源文件中,并使用conjugator 文件来使用这些函数

在C+中包含文件时重新定义函数+;(错误LNK2005) 我是C++新手,我有一个基本的疑惑。br> 我正在创建一个法语动词变位应用程序 我有两个文件,一个Conjugator.cpp文件和一个serverbs.cpp文件。 我希望将大部分函数保留在服务器源文件中,并使用conjugator 文件来使用这些函数,c++,redefinition,lnk2005,C++,Redefinition,Lnk2005,以下是一些代码片段: Conjugator.cpp 如果有人能告诉我如何将函数保存在单独的源文件中,并#将它们包含在一个源文件中,并在没有重新定义错误的情况下使用它们的函数,我将不胜感激 永远不要包含*.cpp文件。删除以下内容 #include "ErVerbs.cpp" #include "IrVerbs.cpp" #include "ReVerbs.cpp" 创建包含以下内容的serverbs.h: void erVerbs(); 并将其包含在Conjugator.cpp中 #incl

以下是一些代码片段:

Conjugator.cpp


如果有人能告诉我如何将函数保存在单独的源文件中,并#将它们包含在一个源文件中,并在没有重新定义错误的情况下使用它们的函数,我将不胜感激

永远不要包含*.cpp文件。删除以下内容

#include "ErVerbs.cpp"
#include "IrVerbs.cpp"
#include "ReVerbs.cpp"
创建包含以下内容的serverbs.h:

void erVerbs();
并将其包含在Conjugator.cpp中

#include "ErVerbs.h"

因为你包括了模块

#include "ErVerbs.cpp"
#include "IrVerbs.cpp"
#include "ReVerbs.cpp"
在module Conjugator.cpp中,所有四个模块都包含函数的定义,编译器对此进行了说明

您必须在某些头文件中声明函数,并将其包含在使用这些函数的所有模块中,同时将它们的定义保留在一个模块(或多个模块之间)中,而该模块不会包含在任何其他模块中。

您是
#包括另一个
.cpp>.cpp>文件中的
文件,因此,函数定义将存在于两个地方

您可能想做的是创建一个
Conjugator.h
头文件,声明(但不定义)函数,并将其包含在内

如果您不知道如何防止
.h
文件中出现多个声明,也可以在执行时查找标题保护(或
#pragma once

#include "ErVerbs.cpp"
在Conjugator.cpp中,这就是导致链接器错误的原因。通过像这样包含cpp文件,可以重新定义此函数

您应该创建serverbs.h文件,并将其放入函数声明中:

#if !defined(ER_VERBS_H)
#define(ER_VERBS_H)
void erVerbs();
#endif

在Conjugator.cpp中,include#include“serverbs.h”,对您的其他函数也是如此。

我读到我不应该#包含.cpp文件,但我不确定如何使用#if and#define语句定义它谢谢您的帮助:'))但在哪个.cpp文件中我真正定义了函数?我不知道头罩的概念,但我一定会查的,谢谢你的建议:')
#include "ErVerbs.cpp"
#include "IrVerbs.cpp"
#include "ReVerbs.cpp"
#include "ErVerbs.cpp"
#if !defined(ER_VERBS_H)
#define(ER_VERBS_H)
void erVerbs();
#endif