C++ C++;错误:在';类别';
当我编译我正在处理的程序时,我得到: “类”之前应为初始值设定项 我的C++ C++;错误:在';类别';,c++,C++,当我编译我正在处理的程序时,我得到: “类”之前应为初始值设定项 我的Class.h文件中有错误。我在互联网上查找了错误消息,但找不到确切的错误,虽然类似的错误似乎是由于缺少分号造成的,但我不明白为什么需要分号。这是错误指向的代码,在此之前我没有其他函数或类 class Account { public: double dAccountBalance; double dAccountChange(double dChange); }; 在Class.cpp文件中定义了
Class.h
文件中有错误。我在互联网上查找了错误消息,但找不到确切的错误,虽然类似的错误似乎是由于缺少分号造成的,但我不明白为什么需要分号。这是错误指向的代码,在此之前我没有其他函数或类
class Account
{
public:
double dAccountBalance;
double dAccountChange(double dChange);
};
在Class.cpp
文件中定义了double-dAccountChange(double-dChange)
函数。我不认为这是错误的来源,但这是代码
double Account::dAccountChange(double dChange)
{
dAccountBalance += dChange;
return 0.0;
}
当我把Class.h中的代码改成这样时
;
class Account
{
public:
double dAccountBalance;
double dAccountChange(double dChange);
};
它不会生成错误消息,但我无法理解为什么在它前面需要分号,因为在它之前只有以下预处理器行代码
#ifndef CLASS_H_INCLUDED
#define CLASS_H_INCLUDED
关于产生错误的原因有什么想法吗?问题出在另一个标题中,一个在
class.h
之前包含的标题中
如果您向我们显示主
cpp
文件的顶部,它可能会给出一个线索。最有可能的是,在紧靠class.h
之前包含的头文件中,您会看到如下内容:
class xyzzy {
int plugh;
}
没有结束分号。这将使您的代码序列:
class xyzzy {
int plugh;
}
class Account
{
public:
double dAccountBalance;
double dAccountChange(double dChange);
};
这显然是无效的。在class.h
的第一行之前插入分号可以解决问题,但显然放在了错误的位置(因为它意味着在第一行之后包含的每个头文件都需要一个起始分号,而且它是第一个头文件中定义的一部分,应该在那里)
现在,这可能不是确切的代码序列,但它将是非常相似的,根本原因将是前一个标题中缺少一段文本
您应该返回并将其放在前面的include文件中
例如,考虑:
include1.h:
class xyzzy {
int plugh;
}
include2.h:
class twisty {
int little_passages;
};
main.cpp:
#include "include1.h"
#include "include2.h"
int main (void) {
return 0;
}
编译此文件将产生:
include2.h:3: error: multiple types in one declaration
但是,将分号放在
include1.h
的末尾(或者include2.h
的开头,尽管我们已经确定这不是一个好主意)可以解决问题。您的一个标题似乎缺少分号。您能粘贴准确的错误消息,并附上行号吗?因为我们这里缺少了一些东西。这个代码<代码>#include#include#include#include使用名称空间std#包括“Class.h”谢谢:是的,这些是完全标准的。因此,我们找错了地方:请编辑您的问题,以包含确切的编译器错误和警告,并填写行号。编译器仅显示错误消息;错误:第5行的类帐户
代码中的“class”之前应为初始值设定项。我正在使用codeblocks GNU GCC编译器。对不起,前面的注释中有错误,在输入完之前意外地按下了输入。可能问题是在C++标准库中的“包含”文件中的一个?不是我写的.h文件,而是像和这样的文件。