C++ 错误:在';之前需要构造函数、析构函数或类型转换';代币
简单地问:这里出了什么问题C++ 错误:在';之前需要构造函数、析构函数或类型转换';代币,c++,compiler-errors,C++,Compiler Errors,简单地问:这里出了什么问题 class c { public: static void v() { int var = 0; } static int i() { return 1; } }; c::i(); // Throws error message c::v(); // Also throws error message void setup() { } void loop() { } 错误消息包括: 编辑草图 /tmp/698769749/
class c {
public:
static void v() {
int var = 0;
}
static int i() {
return 1;
}
};
c::i(); // Throws error message
c::v(); // Also throws error message
void setup() {
}
void loop() {
}
错误消息包括:
编辑草图
/tmp/698769749/CompilingTests/CompilingTests.ino:12:7:错误:应为
“;”之前的构造函数、析构函数或类型转换代币
c::i()
^
/tmp/698769749/CompilingTests/CompilingTests.ino:13:7:错误:应为
“;”之前的构造函数、析构函数或类型转换代币
c::v()
^
退出状态1
这个错误消息应该告诉我什么?突出的问题之一是您的函数没有公共访问权限。语句
c::i()
和c::v()
不允许在全局范围内,它们应该包含在函数中。此外,这些静态成员函数应该声明为公共的,以便在c
之外访问:
struct c {
static void v() {
int var = 0;
}
static int i() {
return 1;
}
};
void g()
{
c::i();
c::v();
}
void setup() {
}
void loop() {
}
演示:你想用
c::i()做什么代码>和下一行?c::i();//抛出错误消息c::v();//还抛出错误消息
这到底意味着什么?FWIW,我发现只有静态函数的类有点异味。我想知道的是,他想用这行代码实现什么,而不是编译器的输出是什么。Hawky askedI删除了不必要的代码,并将其分解为最必要的内容。我只是看到了public
问题,并在我的帖子中解决了这个问题。我“忘记”把这些语句放到 StUpUTE()/<代码中(很明显我对C++是很新的……)。我只是不明白错误信息。谢谢大家!@对C++诊断的理解是一项很难的技能。这段对话已经结束。