お世話になります。質問させていただきます。
C++で、クラスのメンバ変数にforループでアクセスする方法はあるでしょうか、という質問になります。
例えば、
cpp
1enum Sex {MAN, WOMAN}; 2class Human { 3public: // 記載スペースの節約のため全部public 4 Sex sex; 5 int age; 6 bool married; 7}; 8 9int main(void) { 10 Human taro, yuki; 11 taro.sex = MAN, taro.age = 23, taro.married = false; 12 yuki.sex = WOMAN, yuki.age = 19, yuki.married = false; 13 14 /* taroとhanakoのメンバ変数を比較して、同じだったら「一緒だね!」と表示したい */ 15 16 return 0; 17}
(もちろん話をデフォルメしております)
ここで、taroとyukiのメンバ変数の比較は、数が少なければ if をたくさん書けば済みますが(上記の例なら3つ)、
実際にはメンバ変数の数が20個以上あって型もマチマチだと思ってください。
このようなとき、 if を20個書かずにスマートに解決したいです。下のような感じで。
cpp
1for (int i=0; i < Human.itemsNum(); i++) { 2 if (taro.item[i] != yuki.item[i]){ 3 cout << "一緒だね!" << endl; 4 } 5}
また訳あってC++11は使用不可です。。。
何か良い方法はございますでしょうか。
よろしくお願い申し上げます。
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/05/18 13:16
2017/05/18 13:59
2017/05/20 01:22