这是 "Code::Blocks" 中的错误还是我做错了什么

Is this a bug in "Code::Blocks" or I am doing something wrong

我在 code::blocks IDE:

中制作了这个简单的 c++ 程序
#include <iostream>
#include "funct.cpp"
using namespace std;

int main()
{
    float a, b;
    cout << "enter a : ";
    cin >> a;
    cout << "enter b : ";
    cin >> b;
    cout << "\n\nThe result is: " << funct(a, b) << "\n";
    return 0;
}

和这个函数:

#include <iostream>

using namespace std;

float funct(float x, float y)
{
    float z;
    z=x/y;
    return z;
}

当我通过创建新的空文件在 IDE 中创建函数并尝试构建程序时 returns 这个错误:

但是当我通过文本编辑器手动创建相同的函数文件并将其放在项目的同一文件夹中时,它工作正常并且编译器可以毫无错误地构建它。

这是因为我做错了什么还是 IDE 中的错误?

你能帮我解决这个问题吗?

提前致谢。

不包含 .cpp 文件。而是将函数的前向声明放在 .h 或 .hpp 文件中,看起来像这样 float funct(float x, float y);,并包含该文件。

你把项目搞砸了:

首先你应该做的是创建一个 header 文件 function.hfunction.hpp , 在那里放置函数

的 header

function.h:

float funct(float x, float y);

然后

function.cpp:这就是具体实现的地方:

float funct(float x, float y)
{
    float z;
    z = x / y;
    return z;
}

然后您就可以将其包含到另一个文件中了:

#include <iostream>
#include "funt.h"
using namespace std;

int main()
{
    float a, b;
    cout << "enter a : ";
    cin >> a;
    cout << "enter b : ";
    cin >> b;
    cout << "\n\nThe result is: " << funct(a, b) << "\n";
    return 0;
}

你肯定可以看到 dirty/not_good-practice 版本,其中没有 header

在该版本中不需要包含,但您需要对所需功能进行原型设计

function.cpp:这就是具体实现的地方:

float funct(float x, float y)
{
    float z;
    z = x / y;
    return z;
}

和主要的:

#include <iostream>
using namespace std;
float funct(float x, float y);

int main()
{
    float a, b;
    cout << "enter a : ";
    cin >> a;
    cout << "enter b : ";
    cin >> b;
    cout << "\n\nThe result is: " << funct(a, b) << "\n";
    return 0;
}

正如 Neil Butterworth 上面所说,必须包含任何 cpp 文件..