2

私は C++ が初めてで、フットボールの試合をシミュレートするプログラムを作成しようとしています。関数 get_rank、get_player、および get_name がこのスコープで宣言されていないというコンパイラ エラーが発生します。どんな助けでも大歓迎です!

#include <iostream>
#include <fstream>
#include <string>

using namespace std;

class Player {
    int playerNum;
    string playerPos;
    float playerRank;
    public:
        void set_values(int, string, float);
        float get_rank(){ return playerRank; };
};

class Team {
    Player team[];
    string teamName;
    public:
        void set_values(Player[],string);
        Player get_player(int a) { return team[a]; };
        string get_name() { return teamName; };
};


void play(Team t1, Team t2){
    float t1rank = 0.0;
    float t2rank = 0.0;
    for(int i=0; i<11; i++){
        t1rank += get_rank(get_player(t1, i));
    }
    for(int j=0; j<11; j++){
        t2rank += get_rank(get_player(t2, j));
    }
    if(t1rank>t2rank){
        cout << get_name(t1) + " wins!";
    }
    else if(t2rank>t1rank){
        cout << get_name(t2) + " wins!";
    }
    else{
        cout << "It was a tie!";
    }
}
4

1 に答える 1

8

次のようなことをしたいようです:

    t1rank += t1.get_player(i).get_rank();

C++ では、メソッド呼び出しは の形式object.method(args)です。あなたの場合、2 つのメソッド呼び出しがあります。1 つはobjectist1で、メソッドは is で、もう 1 つget_playerはオブジェクトが前の呼び出しの戻り値で、メソッドは isget_rankです。

于 2012-04-13T19:37:13.427 に答える