2016-09-23 8 views
1

gccコンパイラでnetbeansを使用しています。クラスのオブジェクトを宣言してコードを実行しようとすると、クラスはこのスコープのエラーでdelclaredていなかった、これは私のコードはmain.cppにである:私は間違って何をやっているC++:クラスを開始できません。このスコープでクラスが宣言されていません。エラー

#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プログラマーではない。

+0

ファイルのmain()関数は、Clock宣言の後に記述する必要があります。 – Shrikant

答えて

2

まず、そのクラスを使用する前に宣言する必要があります。あなたの場合、それはmain機能の上にあるはずです。

第2に、戻り型のない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; 
} 
+0

ありがとうございました!!!それはうまくいった。 –

0

セルゲイの答えにジャスト補足:あなたはまた、前方にクラスを宣言することができます。 だけでクラスが存在しているコンパイラに伝えるためにあなたのmain関数の前にライン

class Clock; 

を追加します。

関連する問題