Programming | 프로그래밍 언어/C++

구조체, 클래스, 접근제어지시자

gyunnnnnn 2022. 11. 10. 00:34

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;

'Programming | 프로그래밍 언어 > C++' 카테고리의 다른 글

복사 생성자  (0) 2022.11.13
생성자, 소멸자, 이니셜라이저, this  (0) 2022.11.11
캡슐화와 const 함수  (0) 2022.11.10
C언어 기반의 C++ 2  (0) 2022.11.09
C언어 기반의 C++ 1  (0) 2022.11.03