簡體   English   中英

C ++:我無法啟動我的課程,我在這個范圍錯誤中未聲明課程

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM