[英]C++: I can't start my class, I get class was not declared in this scope error
我在gcc编译器中使用了netbeans,当我尝试声明类的对象并运行代码时,我得到的类未在此作用域错误中声明,这是我在main.cpp中的代码:
#include <cstdlib>
#include <iostream>
#include <cstring>
using namespace std;
int main() {
Clock r;
r.processH();
return 0;
}
class Clock {
private:
int h, m, s;
char conv[];
Clock() {
h = 0;
m = 0;
s = 0;
conv[10] = {};
}
public:
void processH() {
int r =0;
while(r <= 2){
conv[r] = 'I';
if(conv == "III") {
conv[0] = 'V';
conv[1] = 'I';
r++;
break;
}
r++;
}
cout<< r;
}
};
我究竟做错了什么? 我不是经验丰富的OOP程序员。
首先,您应该在使用类的名称之前对其进行声明。 在您的情况下,它应该位于main
功能之上。
其次,您声明的Reloj
函数没有返回类型,这是非法的。
正确的代码如下所示:
#include <cstdlib>
#include <iostream>
#include <cstring>
using namespace std;
class Clock {
private:
int h, m, s;
char conv[];
void Reloj() {
h = 0;
m = 0;
s = 0;
conv[10] = {};
}
public:
void processH(int ent) {
int r =0;
while(r <= 2) {
conv[r] = 'I';
if(conv == "III") {
conv[0] = 'V';
conv[1] = 'I';
r++;
break;
}
r++;
}
cout<< r;
}
};
int main() {
Clock r;
r.processH(5);
return 0;
}
只是对Sergey的回答的补充:您还可以向前声明该类。 只需添加行
class Clock;
在您的main
功能告诉编译器该类存在之前。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.