2017-03-01 6 views
-2

私のコードはこれです:設定引数

#include <iostream> 
#include <string.h> 
using namespace std; 

class Angle { 
    private: 
     int degrees, minutes, seconds; 
    public: 
     Angle(){} //required in the assignment 
     Angle(int degrees, int minutes, int seconds){ 
      this->degrees=degrees; 
      this->minutes=minutes; 
      this->seconds=seconds; 
     } 

     void set_degrees(int const degrees){ 
      this->degrees=degrees; 
     } 
     void set_minutes(int const minutes){ 
      this->minutes=minutes; 
     } 
     void set_seconds(int const seconds){ 
      this->seconds=seconds; 
     } 

    int getDegrees(){ 
     return degrees; 
    } 
    int getMinutes(){ 
     return minutes; 
    } 
    int getSeconds(){ 
     return seconds; 
    } 

    int to_seconds(){ 
     return degrees*3600+minutes*60+seconds; 
    } 
}; 

int check(){ 
    Angle a; 
    if (a.getDegrees()<360 && a.getMinutes()<60 && a.getSeconds()<60) return 1; 
    else return 0; 
} 

int main() { 

    Angle a1; 
    int deg, min, sec; 
    cin >> deg >> min >> sec; 

    if (check(deg, min, sec)) { 

     a1.set_degrees(deg); 
     a1.set_minutes(min); 
     a1.set_seconds(sec); 
     cout << a1.to_seconds(); 

    } 

    return 0; 
} 

私はそれが主な機能で実装だ、それが動作するようcheck機能で引数を設定する方法がわかりません。主な機能の中で何も変えることはできません。なぜなら、それは私の教授がプリセットしているからです。Angleクラスに置くことはできないと仮定しています。 「int check()の機能が多すぎます」というエラーが表示されます。

+0

あなたは、パラメータを取らないために 'check'を定義していますが、3つのパラメータでそれを呼び出すようにしようとしている - ので、最初にあなたがそれを変更する必要があります。また、 'check 'の中の' Angle a'は 'main'の' Angle a1'と同じインスタンスではありませんので、あなたがしたいことはしないでしょう。 – UnholySheep

答えて

0

set_degrees()を見ると、引数を取る関数の例を見ることができます。 check()テイクの引数を作ることは、このようになります:

int check(int degrees, int minutes, int seconds) { 
    // (Use these values somehow) 
} 
+0

ちょっと前に試してみましたそれは動作しませんでした、そして今それは...奇妙な..とにかくおかげで! – Boyer

関連する問題