Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/151.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+的新功能+;,对分离代码感到困惑吗 我是C++新手,我的代码分门别类。以下是我的设置: 调用函数的main.cpp,该函数接受2int和1char*并返回int 一个函数.h,其中包含函数prototpye_C++_Compilation - Fatal编程技术网

C+的新功能+;,对分离代码感到困惑吗 我是C++新手,我的代码分门别类。以下是我的设置: 调用函数的main.cpp,该函数接受2int和1char*并返回int 一个函数.h,其中包含函数prototpye

C+的新功能+;,对分离代码感到困惑吗 我是C++新手,我的代码分门别类。以下是我的设置: 调用函数的main.cpp,该函数接受2int和1char*并返回int 一个函数.h,其中包含函数prototpye,c++,compilation,C++,Compilation,int函数(inta,intb,char*c) 包含实际函数定义的function.cpp 我在function.cpp和main.cpp中都使用了#include“function.h” 当我试图编译代码时,我发现在我的main()函数中有一个对函数(int,int,char*)的未定义引用 怎么了?*拍了拍脑袋 我在函数文件之后省略了一个.cpp,因此eclipse没有编译该文件。对不起 我猜您没有“保护”您的.h文件,使其不被多次包含 始终使用以下预处理器行构造.h文件: #ifnde

int函数(inta,intb,char*c)

  • 包含实际函数定义的function.cpp
我在function.cpp和main.cpp中都使用了
#include“function.h”

当我试图编译代码时,我发现在我的
main()
函数中有一个对
函数(int,int,char*)
的未定义引用

怎么了?

*拍了拍脑袋

我在函数文件之后省略了一个.cpp,因此eclipse没有编译该文件。对不起

我猜您没有“保护”您的.h文件,使其不被多次包含

始终使用以下预处理器行构造.h文件:

#ifndef __MYHEADERFILEH__
#define __MYHEADERFILEH__

your header file "code" here

#endif
______MYHEADERFILEH__;是一个统一的名称,最好是头文件的大写名称。 你放了一个#include“MyHeaderFile.h” 在每个.cpp或.c文件中使用头文件


如果您发布代码,则更容易找出问题所在。

我建议您删除您的问题(以避免混淆其他人的问题并浪费他们的时间)。我多么希望我在2分钟前阅读了此评论啊!。我投票结束了这个问题。请删除它,这样我们就不会浪费时间,或者至少对它进行编辑,这样这个小通知就不会被贴在页面底部,与之分开。-啊,其实我有能力为你做后者!以下划线开头,后跟大写字母或其他下划线的名称保留给实现。最好不要在开始时包含带下划线的警卫。@peachykeen:仅仅因为某些项目使用这种格式是不能接受的。我从来没有在我的C++项目中使用头保护的保留名称,我知道(至少大部分)Boost没有。如果很容易做对,为什么要做错呢?正如带双下划线的名称不太可能被保留一样,没有双下划线的相同名称也不太可能与任何内容冲突。或者,在末尾加下划线是完全可以接受的。实际上,名称以下划线开头,后跟大写字母,名称中任何位置都有双下划线,所有名称在全局命名空间中都以下划线开头。我同意应该遵循这条规则。这样做成本不高,而且大大降低了十年后移植代码时名称冲突的可能性。@Potato,@sbi:ohhhh,你说得对:名称中的任何位置都禁止使用双下划线。叹息