용어 | 정리 |
---|---|
클래스 | 멤버 변수,함수들의 집합인 데이터 형식 객체를 위한 추상적인 설계도 |
객체 | 상태와 행동을 하나로 묶은 프로그래밍적 개념의 구체적인 대상 |
인스턴스 | 추상적 클래스에서 구체적인 객체를 생성하는 과정 객체랑 같은 말 |
접근 제한자 | public(클래스 내외부 모두 사용) private(클래스 내부만) protected(클래스 내부 + 파생 클래스에서 사용) |
캡슐화 | 기본적으로 정보 은닉(어떤 정보가 있는지 모르게 하기위함)이 목적 |
정보 은닉 | 불필요한 정보를 가림 |
범위 해결 연산자 | 클래스명::멤버 함수 소속 클래스를 명시해주는 기능 |
상수 멤버 함수 | 함수 뒤에 const를 붙인 형태 이 경우 함수 내부에서 멤버의 값을 변경하지 않겠다는 의미 오류 방지를 위해서 const를 적극 활용 값을 가져오는 Getters함수에서 주로 사용됨 |
this 포인터 | 객체가 자시기 자신을 받을때 사용됨 모든 멤버 함수에는 this 포인터가 있음 |
속성 | 멤버 변수로의 직접 접근을 막고 멤버 함수로 간접 접근하게 하는 방법 Getters/Setters에서 자주 활용됨 |
생성자 | 객체가 생성될 때 자동으로 불려지는 것 |
소멸자 | 객체가 사라질 때 자동으로 불림 생성자를 하나라도 생성해주면 자동으로 불리지 않음 직접 설정해야함 |
유니폼 초기화 | c++ 모든 객체에서 모두 작동하는 초기화 방법 형변환이 허용되지 않음 |
초기화 리스트 | 생성자를 사용한 객체 생성시 멤버 변수를 초기화하는 방법 : x1{1},x2{2} |
class VS struct | 구조체는 모든 멤버가 public인 클래스 (c++에서는 함수도 가능) |
정적 멤버 | 객체에 속하는 다른 멤버 변수들과 다르게 클래스에서 바로 사용할 수 있는 특징을 가진 멤버 |
복사 생성자 | 객체를 인자로 넘겨주어 초기화하기 위해서 객체를 복사하는 생성자 기본적으로 c++컴파일러가 복사 생성자를 만들어줌 |
얕은 복사 VS 깊은 복사 | 값만 넘겨주는 얕은 복사 실제 메모리를 할당하는 깊은 복사(소유권 문제 해결 가능) |
연산자 오버로딩 | 피연산자를 객체의 멤버 변수에서 객체 자체를 받아들이게 만드는 것 |
상속(파생) | 부모 클래스의 기능을 물려받음 class 클래스명 : 접근제한자 클래스명 |
baseClass, derivedClass | baseClass(부모 클래스) derivedClass(부모 클래스에서 상속(파생)된 클래스) |
overriding | 부모 클래스의 멤버 함수와 이름 매개변수 반환값이 같은 자식 클래스에서 재정의 하는 것 |
polymorphism | 개념상 자식 클래스는 부모 클래스의 특성을 가지고 있음 그래서 자식 클래스를 부모 클래스로 처리하는 기능 가상함수와 포인터를 활용해 생성함 |
virtual function | 자식 클래스에서 재정의 할 것으로 기대(런타임에 어떤 함수를 사용할지 결정)하는 멤버 함수로 함수 앞ㄷ에 virtual 키워드를 붙임 |
virtual destructor | 상속 받은 클래스의 소멸자는 자동으로 불리지 않아 자동으로 해제되지 않음 이를 방지하기 위해서 부모 클래스의 소멸자를 가상 소멸자로 만들어야함 |