13주차 요약

김서영·2021년 12월 3일
0

여러 개의 기본 클래스를 동시에 상속

현재는 C++만 지원한다.
생성자는 기본 클래스가 지정된 순서대로 왼쪽에서 오른쪽으로 실행된다.
소멸자는 역순으로 실행된다.

가상함수(virtual function)의 필요성

상속받은 클래스의 함수 중 고치고 싶은 함수가 있을 때 사용한다.
상속받은 함수(부모)를 실행하지 않고 자신(자식)의 함수를 실행할 때 사용한다.

가상함수의 구현을 중복(overriding)이라고 한다.

오버라이딩: 가상함수 구현

파생(자식) 클래스에서 재정의하고자 할 때 사용한다.
기본 클래스의 멤버 함수와 같은 이름의 함수를 파생 클래스에서 재정의하여 사용한다.
가상함수는 기본 클래스와 함수의 리턴값, 매개변수 개수, 형이 완전히 같아야 한다.
함수 중첩과 비슷하다.

바인딩(binding)

변수와 함수에 대한 메모리 할당이나 함수 호출이 발생했을 때 실제로 처리해야 하는 명령어들이 결정되는 시점이다.
컴파일 시 결정되는 정적(static) 바인딩과 실제 실행할 때(run time) 결정되는 동적(dynamic) 바인딩이 있다.

정적(static) 멤버변수

모든 객체가 공유하는 멤버 변수이며, 객체들이 정보를 공유할 목적으로 사용하는 변수이다.

객체가 여러 개여도 이 멤버 함수는 하나만 생성된다.

가상함수(virtual function)

하나의 이름(인터페이스)으로 여러 개의 수단과 방법을 제공하는 객체지향 프로그래밍의 다형성을 구현하는 한 방법(오버 라이딩을 구현하는 방법)이다.
기본 클래스의 멤버 함수 앞에 'virtual'이라는 키워드를 쓴다.

C언어의 cast 연산자

(자료형)값이나변수의 형태로 사용한다.
(int)x, (char)ch, (double)sum

C++에서 새로 도입된 cast 연산자

static_cast(double) sum과 비슷한 역할을 한다.
dynamic_cast는 부모 클래스의 포인터에서 자식 클래스의 포인터로 안전한 down casting을 하기 위해 사용된다.


C++프로그래밍(21-2학기)한성현교수 강의 내용 변형 및 요약

0개의 댓글