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; }
성훈