Bottle.h
#pragma once

class Bottle
{
private:
        int capacity;                           //最大容量
        int volume;                                     //入っている量
public:
        Bottle(int capacity);           //コンストラクタ

        void pourIn(int volume);        //水を入れる
        void pourOut(int volume);       //お湯を出す
};

Bottle.cpp
#include "Bottle.h"
#include < iostream >

using namespace std;

Bottle::Bottle(int capacity){
        this->capacity = capacity;      //最大容量を指定してオブジェクトを作成
        this->volume = 0;                       //量を初期化
}

void Bottle::pourIn(int v){
        //水を追加
        volume += v;
        cout << "水を " << v << " cc入れます。" << endl;
        //もし容量を超えたら
        if( volume > capacity ){
                cout << " 水が " << volume - capacity << " ccあふれました。" << endl;
                volume = capacity;
        }
        //今の容量を報告
        cout << " 今 " << volume << " cc入っています。" << endl;        
}

void Bottle::pourOut(int v){
        int prev = volume;
        //お湯を出す
        volume -= v;
        cout << "水を " << v << " cc出します" << endl;
        //もしお湯が足りなかったら
        if( volume < 0 ){
                volume = 0;
                cout << " しかし水が足りません" << endl;
        }
        //最終的に出した量を報告
        cout << " " << prev - volume << " cc出しました" << endl;
}

main.cpp
#include "Bottle.h"

int main(){
        Bottle bottle(500);

        bottle.pourIn(100);
        bottle.pourIn(200);
        bottle.pourIn(300);
        bottle.pourOut(200);
        bottle.pourOut(200);
        bottle.pourOut(200);

        return 0;
}