C++ 개념 Handbook

Woogle·2022년 9월 5일
0

C++ 공부

목록 보기
1/28

Ch 1. 기본 개념

📄 자료형(Type)

저장되는 데이터의 종류

📄 L-value

주소를 갖고 있는 바구니.

📄 R-value

바구니에 넣을 값.

📄 범위(Scope)

중괄호{ } 범위 내에서 정의된 변수와 함수는 중괄호{ } 범위를 벗어나면 메모리에서 해제된다.

📄 포인터(Pointer)

메모리 주소를 담는 변수.
많은 양의 데이터는 그냥 복사하기보다 포인터로 참조하거나 포인터로 주소 정보만 복사하면 더 효율적.

📄 참조(Reference)

변수에다가 같은 메모리를 사용하는 별명을 붙이는 것.
내부적으로는 포인터와 동일하게 작동함.

📄 배열(Array)

동일한 크기의 연속된 메모리 공간.
배열의 이름은 첫번째 원소(index 0)의 주소값을 담고 있다.

📄 함수(Function)

반복적으로 사용되는 코드를 묶어놓은 것.

📄 오버로딩(Overloading)

함수 이름의 재사용.
함수 이름이 같아도 매개변수의 자료형(type) 또는 개수가 다르면 재사용할 수 있다.


Ch 2. 객체지향

📄 클래스(Class)

객체를 만들어 내기 위한 설계도.
연관되어있는 변수와 메서드를 그룹화한 것.

📄 객체(Object)

설계도로 구현할 수 있는 모든 대상.
모든 인스턴스를 포함하는 포괄적인 개념.

📄 인스턴스(Instance)

메모리에 할당되어 구현된 구체적인 실체.
클래스라는 설계도로부터 생성된 복사본을 의미.
각 인스턴스는 서로 독립적이므로 개별로 메모리 주소를 찍어볼 수 있음.

📄 생성자(Constructor)

객체가 생성되자마자 자동으로 실행되는 함수.

📄 소멸자(Destructor)

객체가 메모리에서 해제될 때 자동으로 실행되는 함수.

📄 상속성(Inheritance)

자식 클래스가 자동으로 부모의 멤버들을 갖게 되는 것.
공통적인 멤버는 부모 클래스에서 정의해서 상속받아 사용하는 것이 효율적.

📄 캡슐화(Encapsulation)

외부에서 함부로 접근하면 안되는 멤버를 보호하고 은닉하는 것.
Get, Set 메소드를 사용하는 이유.

📄 다형성(Polymorphism)

각 요소들(상수, 변수, 식, 오브젝트, 함수, 메소드 등)이 다양한 자료형(type)에 속하는 것이 허가되는 성질.

📄 오버라이딩(Overriding)

부모 클래스의 메소드를 자식 클래스에서 재정의.
부모 클래스 메소드에 virtual, 자식 클래스 메소드에 override를 붙이면 자식 클래스마다 이름은 같지만 다른 역할을 하는 메소드를 사용할 수 있다.

📄 정적 바인딩(Static Binding)

컴파일 시점에 어떤 함수가 호출될지 결정됨.
일반 함수에 해당.

📄 동적 바인딩(Dynamic Binding)

실행 시점에 어떤 함수가 호출될지 결정됨.
가상 함수(virtual function)에 해당.

📄 Static 변수, Static 함수

객체 별로 할당되지 않고 클래스의 모든 객체가 메모리를 공유하는 멤버.
스택 영역에 저장되지 않고 전역변수처럼 데이터 영역에 저장됨

📄 인터페이스(Interface)

특정 기능을 구현할 것을 약속한 추상 형식.
인터페이스의 모든 멤버는 public한 순수 가상 메소드이다.

참고 자료

profile
노력하는 게임 개발자

0개의 댓글