【发布时间】:2025-12-23 17:35:06
【问题描述】:
我正在尝试创建一个类来包含我拥有的 CRC 数学表手册中的一些数学运算,在创建其中一个函数时,我遇到了一个以前从未出现过的奇怪错误。 cpp和header的代码如下:
//Header File
#include <iostream>
#include <cmath>
#include <string>
#define int "CRCMathLib_H"
using namespace std;
class CRCMathLib
{
public:
int DoReturn_Totient(int Toter); //Error comes from here when trying to declare as an int
};
//CPP Class File
#include "CRCMathLib.h"
#include <iostream>
#include <cmath>
#include <string>
using namespace std;
int CRCMathLib::DoReturn_Totient(int Toter)
{
return 0;
}
//CPP Main File
#include <iostream>
#include <cmath>
#include <string>
#include "CRCMathLib.h"
using namespace std;
int main()
{
return 0;
}
主文件目前还没有做任何事情,因为这是一个全新的文件,用于这些操作,我相信这可能是一个预处理错误,并且当我在另一台使用 VS 的 PC 上运行它时,它没有出现在 int 语句上它能够阅读该声明。任何事情都会有所帮助。它还请求对头文件进行删除,所以这就是我将 int 放在那里的原因,这可能是问题吗?删除它会返回没有减速的错误。
【问题讨论】:
-
这是什么声明?
#define int "CRCMathLib_H" -
奇怪的猜测。由于
return 0.0;实际上是在尝试返回一个浮点 值,如果更改为return 0;或return Toter + 2;会发生什么?除了未使用的参数int Toter之外,真的没有任何跳出来的东西(当然代码也真的什么都不做) -
我回去编辑了,bc改成了double,我忘了改返回值,应该是return 0,抱歉
-
至于 define 方法中的 decleration,我添加了它,因为 VS 在添加 decleration 后抱怨它没有 decleration,我不知道为什么需要这样做(可能不是),程序正常通过了它
-
好吧,
"CRCMathLib_H" DoReturn_Totient("CRCMathLib_H" Toter);绝对不是一个有效的函数原型。我怀疑你的意思是#include,但意外写了#define,因为你在另一个文件中写对了。
标签: c++ class methods declaration