사자자리
[C++] 추상화와 클래스 본문
추상화
- 어떤 객체의 공통된 특징을 간결한 방식으로 이해하기 쉽게 표현하는 것
클래스
- 추상화를 사용자 정의 데이터형으로 변환해주는 수단
데이터 은닉
- 데이터에 직접 접근하지 못하는 것
- private 멤버의 값을 변경하려면, 반드시 public에 선언된 함수를 통해서 변경해야 한다.
private | public |
- 비공개 멤버 - 클래스 내에서만 접근 가능 |
- 공개 멤버 - 클래스 외부에서도 접근 가능 |
//Stock.h
#ifndef STOCK
#define STOCK
#include <iostream>
using namespace std;
class Stock
{
private:
string name;
int shares;
float share_val;
double total_val;
void set_total() { total_val = shares * share_val; }
public:
void acquire(string, int, float);
void buy(int, float);
void sell(int, float);
void update(float);
void show();
Stock();
~Stock();
};
#endif // !STOCK
//func.cpp
#include "Stock.h"
//사용 범위 결정 연산자 ::
void Stock::acquire(string co, int n, float pr) {
name = co;
shares = n;
share_val = pr;
set_total();
}
void Stock::buy(int n, float pr) {
shares += n;
share_val = pr;
set_total();
}
void Stock::sell(int n, float pr) {
shares -= n;
share_val = pr;
set_total();
}
void Stock::update(float pr) {
share_val = pr;
set_total();
}
void Stock::show() {
cout << "회사 명 : " << name << endl;
cout << "주식 수 : " << shares << endl;
cout << "주가 : " << share_val << endl;
cout << "주식 총 가치 : " << total_val << endl;
}
Stock::Stock() {
}
Stock::~Stock()
{
}
//main.cpp
#include <iostream>
#include "Stock.h"
int main() {
Stock temp;
temp.acquire("Regulus", 100, 1000);
temp.show();
temp.buy(10, 1200);
temp.show();
temp.sell(5, 800);
temp.show();
return 0;
}
'C++ > C++ 이론' 카테고리의 다른 글
[C++] this 포인터와 클래스 객체 배열 (0) | 2022.08.17 |
---|---|
[C++] 클래스 생성자와 소멸자 (0) | 2022.08.17 |
[C++] 분할 컴파일: #ifndef & #endif (0) | 2022.08.17 |
[C++] 함수의 활용 (0) | 2022.08.05 |
[C++] 함수 (0) | 2022.08.03 |
Comments