クラスでカウンターを表現する、を集約する

別のクラスのインスタンスをメンバー変数として持つ。

#include "Counter.h"
#include <iostream>
using namespace std;

class GenderCounter{
    private:
        Counter male; // 別のクラスのインスタンスをメンバー変数として持つ。
        Counter female; // 別のクラスのインスタンスをメンバー変数として持つ。
    public:
        void upMale();
        void upFemale();
        int getMale();
        int getFemale();

        GenderCounter();
};

// 以下の.upVal()、.getVal()は別のクラス(Counterクラス)で定義されているpublicメソッド。
void GenderCounter::upMale(){
    this->male.upVal();
}
void GenderCounter::upFemale(){
    this->female.upVal();
}
int GenderCounter::getMale(){
    return this->male.getVal();
}
int GenderCounter::getFemale(){
    return this->female.getVal();
}

GenderCounter::GenderCounter(){}


int main(){
    GenderCounter uniCounter;

    for(int i=0; i<2 ; i++){uniCounter.upMale();}
    for(int i=0; i<99; i++){uniCounter.upFemale();}

    cout << uniCounter.getMale() << endl;
    cout << uniCounter.getFemale() << endl;


    system("pause");
    return 0;
}

f:id:ti-nspire:20181203150020p:plain