使用标头和源文件时遇到问题

时间:2015-11-29 19:57:04

标签: c++

我正在尝试学习如何在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;
    }

老实说,我不知道是什么原因导致这个问题,因为我在网上发现的大部分答案都与声明类的语法有关,这超出了我的水平。非常感谢任何帮助!

以下是编译的截图

errors

作为旁注,我能够通过简单地将整个.cpp文件粘贴到.h文件并添加#include <iostream> #include "project5functions.h" using namespace std; int main () { cout << testing123(7) << endl; return 0; } 来实现它,但我听说这不是推荐的方法。那是为什么?

2 个答案:

答案 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命名空间内的方法填充范围。命名空间有助于减少与其他命名空间的冲突。