これを行うOOPの方法は、おそらくElectionInfo
、と呼ばれるクラスを作成することです。ここで、
これらはそのメンバーフィールドになります:
vector <string> countyNameVector;
vector <int> countyNCount;
vector <int> countyFCount;
vector <int> countyOCount;
int NCount;
int FCount;
int OCount;
int NTotal;
int FTotal;
int OTotal;
これらはそのメンバー関数になります。
void add_county_election_file(const string);
void search_county(const string);
void print_results();
このようにして、ベクトルへの参照を渡す必要はまったくありません。代わりに、次のようにすることができます。
ElectionInfo an_elect_info;
char selection = get_menu_choice();
// some if-statements to decide which of the following to call:
an_elect_info.add_county_election_file(county_name);
an_elect_info.search_county(county_name);
an_elect_info.print_results();
ただし、現在の機能的アプローチを維持したい場合は、次のようにします。
mainメソッド内で以下を宣言して初期化します。
vector <string> countyNameVector;
vector <int> countyNCount;
vector <int> countyFCount;
vector <int> countyOCount;
int NCount;
int FCount;
int OCount;
int NTotal;
int FTotal;
int OTotal;
コメントアウトされた関数宣言の構文は、次のように調整する必要があります。
void add_county_election_file(const string, vector<string>&, vector<int>&, vector<int&, vector<int>&);
(もちろん、定義はそれに続くべきです)
次のように呼び出します。
add_county_election_file(countyname, countyNameVector, countyNCount, countyFCount, countyOCount);
オブジェクトは自動的に参照によって渡されます。