我正在尝试学习如何在c ++程序中使用头文件/源文件,但我甚至无法获得一个非常基本的程序来正确编译。当我尝试编译时,我会收到错误,例如"期望的不合格ID"或"使用未声明的标识符"
这就是我在头文件(project5functions.h)中的全部内容:
this->date = date;
关联的project5functions.cpp:
#ifndef project5functions_h
#define project5functions_h
#include <iostream>
#include <fstream>
std::int testing123(std::int a);
#endif
我尝试编译的主要c ++文件:
#include <iostream>
#include "project5functions.h"
using namespace std;
int testing123(int a) {
return a + 4;
}
老实说,我不知道是什么原因导致这个问题,因为我在网上发现的大部分答案都与声明类的语法有关,这超出了我的水平。非常感谢任何帮助!
以下是编译的截图
作为旁注,我能够通过简单地将整个.cpp文件粘贴到.h文件并添加#include <iostream>
#include "project5functions.h"
using namespace std;
int main () {
cout << testing123(7) << endl;
return 0;
}
来实现它,但我听说这不是推荐的方法。那是为什么?
答案 0 :(得分:1)
您不需要为头文件中的整数指定std命名空间(std::
)。所以在project5functions.h中,改变
std::int testing123(std::int a);
到
int testing123(int a);
应该诀窍。
答案 1 :(得分:0)
类型int不是std命名空间的一部分,不要使用std :: int,只需使用int。
要回答第二个问题,使用命名空间std将使用std命名空间内的方法填充范围。命名空间有助于减少与其他命名空间的冲突。