3. 내용 ¶
- 구조체 내에 함수를 넣을 수 있다.
 
- 함수를 선언하고 나중에 수정 할 수 있다.
 
- 지시자는 public, private, protected로 3가지가 있으나 현재 쓸 것은 public, private이다.
 - private는 클래스 내부에서만 접근 할 수 있다.
 
- public은 어느 곳에서든 접근 할 수 있으며 아무것도 쓰지 않으면 default가 private이 된다.
 
 
- private는 클래스 내부에서만 접근 할 수 있다.
- Inline 함수는 헤더 파일 부분에 선언해야 한다.
 
- 정보은닉 : 밖에서 건드릴 필요 없는 변수는 함수로 접근한다. 이럴 용도의 함수를 엑세스 함수라 한다.
 
- 캡슐화 : 묶을수 있는건 묶는다.
 
- 생성자 : 클래스 생성시 어떻게 초기화할지를 가진다.
 
- 소멸자 : 클래스 소멸시 어떻게 지울지를 가진다. 다음시간에 더 자세히 하자.
 
- 사과장수.cpp
 
#include<iostream>
using namespace std;
class appleseller
{
	
private:
	int Apple_num;
	int Apple_price;
	int Money;
public:
	void sell_apple(int num) const;
	void show_result() const;
	void init_member(int price, int num, int money);
};
int main(){
	int flag;
	int money;
	int num;
	appleseller hoon;
	appleseller * taekyun = new appleseller;
	
	hoon.init_member(10000, 100, 0);
	while (1)
	{
		cout << "입력하세요 : 1 사기 2 결과출력" << endl;
		cin >> flag;
		switch (flag)
		{
		case 1:
			cout << "몇개사나요 ? ";
			cin >> num;
			hoon.sell_apple(num);
			break;
		case 2:
			hoon.show_result();
			break;
		}
	}
}
void appleseller::init_member(int price, int num, int money)
{
	Apple_price = price;
	Apple_num = num;
	Money = money;
}
void appleseller::sell_apple(int num) const
{
	Apple_num -= num;
	Money += Apple_price * num;
	show_result();
}
void appleseller::show_result() const
{
	cout << "남은사과 " << Apple_num << " 돈 " << Money << endl;
 
}
- 공부 방법을 드디어 확정. 스터디 시작 후 일정 시간동안 공부를 하고 공부한 것에 대해 이야기를 하는 것으로 결정.
 
 
4. 과제 ¶
- 사과 장수 클래스 만들기
 - 사과장수 클래스 만들기
 
- 멤버변수로 사과가격, 소유 돈, 소유 사과갯수 
 
- 멤버함수로 사과팔기, 초기화, 가지고 있는거 출력하기 
 
- 멤버함수의 초기화를 생성자를 통해서 만들어보기
 
 
 
- 사과장수 클래스 만들기
5. 과제 제출란 ¶
유재범
 아 파일 올리기 안된다ㅠㅠ
성훈
#include <iostream>
using namespace std;
class AppleSeller{
private:
	int applePrice;
	int moneyHave;
	int appleNum;
public:
	void SellApple(int num);
	int ShowApple(void);
	int ShowMoney(void);
	void Reset(void);
	void SetAll(int applePrice, int moneyHave, int appleNum);
};
int main(void)
{
	int input, num, saveApple, saveMoney, savePrice;
	AppleSeller JaeBeom;
	cout<<"당신이 가지고 있는 사과의 갯수는?"<<endl;
	cin>>saveApple;
	cout<<"사과를 개당 얼마에 파실 것입니까?"<<endl;
	cin>>savePrice;
	cout<<"초기 소지 금액은 얼마이십니까?"<<endl;
	cin>>saveMoney;
	JaeBeom.SetAll(savePrice, saveMoney, saveApple);
	while(1)
	{
		cout<<"1 : 사과 팔기\n2 : 소지 금액 보기\n3 : 소지 사과 갯수 확인\n4 : 장사 리셋"<<endl;
		cin>>input;
		switch(input)
		{
		case(1):
			cout<<"몇 개를 파시겠습니까?"<<endl;
			cin>>num;
			JaeBeom.SellApple(num);
			break;
		case(2):
			cout<<"당신의 소지 금액은 "<<JaeBeom.ShowMoney()<<"원 입니다."<<endl;
			break;
		case(3):
			cout<<"당신의 사과 갯수는 "<<JaeBeom.ShowApple()<<"개 입니다."<<endl;
			break;
		case(4):
			JaeBeom.SetAll(savePrice, saveMoney, saveApple);
		}
		if(JaeBeom.ShowApple()==0)
		{
			cout<<"장사가 끝났습니다. 당신이 판매하신 사과의 갯수는 "<<JaeBeom.ShowApple()<<"개 이며 "<<JaeBeom.ShowApple()-saveMoney<<"원을 이득 보셔서 현재 "<<JaeBeom.ShowMoney()<<"원을 소지하고 계십니다."<<endl;
			break;
		}
	}
	return 0;
}
void AppleSeller::SetAll(int savePrice, int saveMoney, int saveApple)
{
	applePrice=savePrice;
	moneyHave=saveMoney;
	appleNum=saveApple;
}
void AppleSeller::SellApple(int num)
{
	appleNum-=num;
	moneyHave+=(num*applePrice);
}
int AppleSeller::ShowMoney()
{
	return moneyHave;
}
int AppleSeller::ShowApple()
{
	return appleNum;
}
성훈













