多个文件程序:cpp via NppExec(notepad ++ plugin)

时间:2014-07-22 11:21:58

标签: c++

学习c ++,使用标题文件和函数的前向声明。

文件1: ReadNum.cpp

#include<iostream>
using namespace std;
int ReadNumber()
{
    int x;
    cout << "Enter a number: ";
    cin >>  x;
    return x;
}

文件2: WriteAnswer.cpp

#include<iostream>
using namespace std;
void WriteAnswer (int ans)
{
    cout << "The answer is: " << ans << endl;
}

文件3: Add.cpp

#include<iostream>
using namespace std;
int Add (int x, int y)
{
    return x+y;
}   

标题

文件4: Task1.h

#ifndef TASK1_H
#define TASK1_H
int ReadNumber ();
void WriteAnswer (int);
int Add (int, int);
#endif

文件5: main.cpp

#include<iostream>
#include"Task1.h"
using namespace std;
int main()
{
    int x = ReadNumber();
    int y = ReadNumber();
    WriteAnswer(Add(x,y));
    cin.get();            // halting the prompt window
    cin.ignore();         // halting the prompt window
    return 0;
}

所有文件都在同一个文件夹中。 以下代码也将正确编译和显示。

#include<iostream>
#include"WriteAnswer.cpp"
#include"ReadNumber.cpp"
#include"Add.cpp"
using namespace std;
int main()
{
    int x = ReadNumber();
    int y = ReadNumber();
    WriteAnswer(Add(x,y));
    cin.get();              // halt prompt window
    cin.ignore();
    return 0;
}   

有谁知道为什么.h文件不会向前声明函数?

是否可能因为文件未包含在项目中(即不使用CodeBlocks或Visual type IDE)

1 个答案:

答案 0 :(得分:0)

首先,通过#including .cpp个文件,您可以让编译器看到它们的内容。 不要这样做 - 包括头文件。

其次,当你说&#34;为什么.h文件不会转发声明函数&#34;它确实声明了这些函数,但是如果你没有将定义的源文件添加到你的构建(项目,makefile等),你将会收到链接器错误。