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,你说得对:名称中的任何位置都禁止使用双下划线。叹息