1. 구조체의 유용성
- 관련 있는 데이터를 하나의 자료형으로 묶을 수 있다.
- 프로그램의 구현 및 관리가 용이해진다.
2. C 언어의 구조체에 대한 불만
- 기본 자료형으로 인식해 주지 않는다.
struct Person{
int age;
char name[10];
};
int main()
{
int a=10;
Person p; // struct Person p;
return 0;
}
3. 함수를 넣으면 좋은 구조체
- 프로그램=데이터+데이터 조작 루틴(함수)
- 잘 구성된 프로그램은 데이터와 더불어 함수들도 부류를 형성
struct Account {
char accID[20];
char secID[20];
char name[20];
int balance;
void Deposit(int money){
balance+=money;
}
void Withdraw(int money){
balance-=money;
}
};
4. 구조체가 아니라 클래스(Class)
- 클래스 = 멤버 변수 + 멤버 함수
- 변수가 아니라 객체(Object: 완전한 대상체)
5. 데이터 추상화 이후의 클래스화
- 추상화된 데이터를 가지고 사용자 정의 자료형을 정의하는 것
위의 struct Account {...}의 경우
데이터 = 계좌번호, 비밀번호, 이름, 잔액
기능 = 입금, 출금
6. 클래스의 내부 접근과 외부 접근
public, protected, private
7. 멤버함수의 외부 정의
class Door{
private:
int state;
public:
void Open();
void Close();
void ShowState();
};
void Door::Open(){
state=OPEN;
}
void Door::Close(){
state=CLOSE;
}
void Door::ShowState(){
...
}