관리 메뉴

ComputerVision Jack

[c++ 프로그래밍 Chapter3] 본문

Programming Language/C++ Programming

[c++ 프로그래밍 Chapter3]

JackYoon 2020. 1. 16. 23:50
반응형

[C++에서 구조체]

구조체 등장배경

연관있는 데이터를 하나로 묶으면, 프로그램의 구현 및 관리가 편하다.

구조체에선 내부에 변수와 함수를 선언할 수 있다.

 

열거형 enum

구조체 내에서만 유효한 상수들은 열거형 enum을 사용하여 정의한다.

#define 정의를 -> enum{}으로 가져온다.

 

또한 구조체 내에서 정의된 함수를 외부로 뺄 수 있다.

즉, 선언만 구조체에서 하고 정의는 외부에서 한다.

[클래스(Class)와 객체(Object)]

구조체는 클래스의 일종이다.

struct 대신 class를 사용하기만 하면 된다.

하지만 Car c = {"sonata", 200, 0}; 식으로 초기화 할 수 없다.

클래스에선 클래스 내에 선언된 변수는 클래스 내에 선언된 함수에서만 접근 가능하다

 

따라서 클래스에선 접근 관련된 지시를 별도로 지정해야한다.

  • public : 어디서든 접근 허용
  • private : 상속관계에 놓여 있을 때, 유도 클래스에서의 접근 허용
  • protected : 클래스 내(클래스 내에 정의된 함수)에서만 접근 허용

정보은닉 개념이 도입된다.

 

클래스 = 멤버 변수 + 멤버 함수 로 구성되어있다.

대부분 헤더파일에서 클래스를 선언하고, cpp에서 클래스 정의를 담는다.

다만 클래스 내의 인라인 함수는 헤더파일에 함께 넣어준다.

 

Class example{

    private:

        int num;

        char ch;                   멤버 변수

    public:

        void show(int some){ };         멤버 함수

        void hello(char c) { };

};

[객체 지향 프로그래밍 이해]

객체지향 프로그램

현실에 존재하는 사물과 대상, 그에 따른 행동을 실체화하는 형태의 프로그래밍

이러한 객체는 하나 이상의 상태 정보(속성)와 하나 이상의 기능(메소드)으로 구성된다.

 

클래스 기반 두가지 객체 생성 방법

ClassName obj; 

# 일반적인 변수의 선언 방식

ClassName * obj = new ClassName;

# 동적 할당방식(힙)

 

객체간의 대화는 Message로 이루어진다.

반응형

'Programming Language > C++ Programming' 카테고리의 다른 글

[C++프로그래밍 Chapter6]  (0) 2020.01.23
[C++프로그래밍 Chapter5]  (2) 2020.01.21
[C++ 프로그래밍 Chapter4]  (0) 2020.01.19
[C++ 프로그래밍 Chapter2]  (0) 2020.01.14
[C++ 프로그래밍 Chapter1]  (0) 2020.01.14
Comments