◆열거형(Enumeration) ▷열거형이란 프로그래머가 프로그래밍을 할 때 가독성을 위해 탄생한 데이터 형태 ▷열거형 자료에 숫자를 붙여서 사용할 수도 있다. enum Month{ //1부터 차례대로 FEB는 2, MAR는 3 자동할당 JAN=1,FEB,MAR,APR,MAY,JUN,JUL,AUG,SEP,OCT,NOV,DEV }; ◆열거형은 상태를 나타내는 방법 ▷비디오 게임은 여러가지 상태를 나타낼 수 있는데, PLAYING, PAUSED, WIN, LOSE 등 여러가지 상태가 있을 수 있고 이 ▷상태를 나타내는 방법으로 enum을 주로 사용한다. ◆enum의 종류 ▷일반적인 enum ▷클래스 내부의 enum ▷강화된 enum class 타입의 enum - C++의 enum을 여러개 정의시 다른 열거형..
◆C++는 클래스의 멤버함수를 실행할 경우, 클래스 인스턴스의 현재 타입을 기준으로 실행할 멤버 함수를 기계적으로 정해버립니다. 따라서 형변환이 되었을 경우 오버라이딩이 제대로 작동하지 않을 수 있습니다. //ex class car{ int tier; car(){ tier=4; } void printInfo(){ printf("%d개의 타이어가 있습니다.",tier); } }; class motorcycle : public car{ int tier; motorcycle(){ tier=2; } void printInfo(){ printf("%d륜 오토바이 입니다.",tier); } }; int main(){ motocycle* cycle = new motocycle(); car* cart = cycle; ..
◆오버로드 ▷동일한 이름을 갖고 있지만 다른 동작을 하게 만드는것 ▷함수 오버로드를 통해 이름은 같지만 파라미터(인수)를 다르게 줌으로 서로 다른 동작을 시킬 수 있다. ▷클래스 생성자 또한 오버로딩이 가능하다. //함수 오버로딩의 예 int sum(int a, int b){ return a+b; } int sum(int a, int b, int c){ return a+b+c; } ◆연산자에서의 오버로딩 ▷연산자 오버로딩을 통해 동적 클래스가 아닌 Stack 기반 클래스 인스턴스에 동작하는 연산자를 오버로딩 할 수 있다. //벡터 끼리의 합 연산자 오버로딩 Vector operater+(Vector& v1, Vector& v2){ return Vector(v1.x + v2.x , v1.y + v2.y);..
◆상속 어떤 상위 개념을 가지고 추가적인 하위 개념을 만드는 것 상속하는 클래스를 부모 클래스 상속받는 클래스를 자식 클래스 ◆상속방법 class car{}; class bus : public car{ ... }; 상속 받을 클래스의 오른쪽에 콜론 public 과 함께 부모클래스명을 작성한다. ◆멤버변수와 멤버함수 자식클래스는 부모클래스의 상속받은 모든 멤버변수와 멤버 함수를 사용할수 있으며 public일 경우 외부에서 활용도 가능하다. ◆생성자의 실행 순서 자식 클래스의 생성자를 호출하게 되면 자식클래스는 기본적으로 부모 클래스의 '기본 생성자'를 생성하게 된다. 부모클래스의 생성자가 호출된 이후 자식 클래스의 생성자가 호출된다. ◆파라미터가 있는 생성자 파라미터가 있는 생성자를 지정해주게 되면 자식클..