[C++] 객체지향 프로그래밍

marceline·2023년 1월 11일
0

[C++]

목록 보기
7/7
post-thumbnail

Object = behavior + state

객체는 하나 이상의 행동 (기능) 과 하나 이상의 상태 (데이터) 로 이루어져 있다.

# include <iostream>
using namespace std;

class FruitSeller
{
private :
    int APPLE_PRICE;
    int numOfApples;
    int myMoney;
    
public :
    void InitMembers(int price, int num, int money){
        APPLE_PRICE=price;
        numOfApples=num;
        myMoney=money;
    }
    
    int SaleApples(int money){
        int num=money/1000; // a price of one apple=1000
        numOfApples-=num;
        myMoney+=money;
        return num;
    }
    
    void ShowSaleResult(){
        cout<<"leftover apples : "<<numOfApples<<endl;
        cout<<"sales revenue : "<<myMoney<<endl;
    }
};

class FruitBuyer
{
private :
    int myMoney;
    int numOfApples;

public :
    void InitMembers(int money){
        myMoney=money;
        numOfApples=0;
    }
    
    void BuyApples(FruitSeller &seller, int money){
        numOfApples+=seller.SaleApples(money);
        myMoney-=money;
    }
    
    void ShowBuyResult(){
        cout<<"balance : "<<myMoney<<endl;
        cout<<"apples : "<<numOfApples<<endl<<endl;
    }
};

int main(void){
    FruitSeller seller;
    seller.InitMembers(1000,20,0);
    FruitBuyer buyer;
    buyer.InitMembers(5000);
    buyer.BuyApples(seller, 2000);
    
    cout<<"Seller's current situation"<<endl;
    seller.ShowSaleResult();
    cout<<"Buyer's current situation"<<endl;
    buyer.ShowBuyResult();
    
    return 0;
}

Message Passing (객체간의 대화) 방법

numOfApples += seller.SaleApples(money);

FruitBuyer 객체가 FruitSeller 객체에게 SaleApples(money) 를 호출하라고 전한 것 !

0개의 댓글