C++에서 구조체
구조체
- 연관 있는 데이터를 묶을 수 있는 문법적 장치
C++
은 구조체 안에 함수를 삽입하는 것을 허용한다.
struct Point
{
int xpos;
int ypos;
void Show()
{
cout << xpos << " " << ypos << endl;
}
};
struct Point
{
int xpos;
int ypos;
void Show();
};
void Point::Show()
{
cout << xpos << " " << ypos << endl;
}
- 모든 구조체 변수가 하나의 함수를 공유한다.
- 논리적으로는 각각의 변수가 자신의 함수를 별도로 지니는 것과 같은 효과 및 결과를 보인다.
클래스와 객체
클래스
- 키워드
struct
를 대신해서 class
를 사용하면, 구조체가 아닌 클래스가 된다.
class Point
{
int xpos;
int ypos;
};
멤버변수와 멤버함수
- 멤버변수 : 클래스를 구성하는(클래스 내에 선언된) 변수
- 멤버함수 : 클래스를 구성하는(클래스 내에 정의된) 함수
접근 제어 지시자 (접근제어 레이블)
public
: 어디서든 접근 허용
protected
: 상속관계에 놓여있을 때, 유도 클래스에서의 접근 허용
private
: 클래스 내(클래스 내에 정의된 함수)에서만 접근 허용
- 키워드
struct
를 이용해서 정의한 구조체에 선언된 변수에 접근 제어 지시자를 선언하지 않으면 public
으로 선언된다.
- 키워드
class
를 이용해서 정의한 클래스에 선언된 변수에 접근 제어 지시자를 선언하지 않으면 private
으로 선언된다.
객체지향 프로그래밍의 이해
- 현실에 존재하는 사물과 대상, 그에 따른 행동을 있는 그대로 실체화시키는 형태의 프로그래밍
- 객체를 이루는 것은 데이터(변수)와 기능(메소드)이다.
- 하나의 객체가 다른 하나의 객체에게 메시지를 전달하는 방법(객체간의 대화 방법)은 함수 호출을 기반으로 한다.
클래스 기반의 두 가지 객체 생성 방법
ClassName objName;
Car myCar;
ClassName * ptrObj = new ClassName;
Car *ptr = new Car;