구조체structure를 대체하는 클래스Class , public, private, protective

- struct은 기본 멤버의 속성이 public이고


- class는 기본 멤버의 속성이 private이다.

클래스는 구조체를 포함
클래스 = Attribute + Method
Attribute - 멤버 변수
Method - 멤버 함수
그렇다고 하는데 이걸 구별해서 써야 될 필요가 있는지는 모르겠다.
class에 public protective private를 나눠서 쓰면 되는건데

구조체
각각의 변수를 모아서 쓰기 편하게 뭉쳐놓은 것

struct나 typedef는 선언하기 귀찮고 불편한다.

C++에서는 이 부분이 개선된다.

typedef struct Person
{
}Person;
이런식으로 선언해야 되서 귀찮았는데

struct Person
{
};
으로 간단해졌다.

struct Person
{
 int a;
 int b;

 void ShowData(int id); // 함수도 막 넣는다.
};

그럼 구조체가 아닌 클래스Class

Class는 변수가 아닌 객체
객체Object는 현실의 모든 사물, 또는 추상적인 개념으로 구분할 수 있는 한 덩어리를 말한다.
완전한 대상체'라는 의미를 지닌다.

데이터 추상화(Data Abstraction)
사람
 → 멤버 변수 : 이름, 나이, 친구명단, 재산, ...
 → 멤버 함수 : 밥하기, 운전하기 (좀 아닌가..), ...

프로그램에서 한 형태에게 필요로 하는 것을 추가...
도서관에서 사람의 멤버함수라면 ... 대여, 반납, 도서신청 등이 추가될 수 있을듯..

인스턴스화(instantiation)
: 클래스를 기반으로 객체를 생성하는 것

public protective private
public - 공용 : 클래스 밖에서 접근 가능
protective - 상속전에는 private, 상속후에는 public처럼 동작
private - 클래스 안에서만 접근 또는 변경 가능

class Person
{
 int a;
 int b;
void Borrow();
void Return();
void Application();
}

void Person::Borrow() //class의 밖에서 함수를 선언할 때
{
}

inline void Person::Return() //class의 밖에서 내부에 선언하는것처럼 선언
{
}

먼 차인지는 몰겠다.

Leave a Reply

Your email address will not be published. Required fields are marked *

 characters available

5 + 1 =