중간 점검 (349p)
1. 부모 클래스 포인터 변수는 자식 클래스 객체를 참조할 수 있는가? 그 역은 성립하는가?
2. 다형성은 어떤 경우에 유용한가?
메시지를 보내는 측에서는 객체가 어떤 타입인지 알 필요가 없다.
새로운 도형이 추가되어도 main()의 루프는 변경할 필요가 없다.
3. 부모 클래스 포인터로 자식 클래스에만 정의된 함수를 호출할 수 있는가?
중간 점검 (359p)
1. 가상 함수를 사용하면 어떤 장점이 있는가?
만약 Shape 포인터를 통하여 멤버 함수를 호출하더라도 도형의 종류에 따라서 서로 다른 draw()가 호출된다면 상당히 유용할 것이다.
2. 동적 바인딩과 정적 바인딩을 비교하라.
동적 바인딩: 바인딩이 실행 시까지 연기되고 실행 시간에 실제 호출되는 함수를 결정하는 것
정적 바인딩: 컴파일 단계에서 모든 바인딩이 완료되는 것
바인딩의 종류 | 특징 | 속도 | 대상 |
동적 바인딩 | 실행 시간에 호출 함수가 결정된다. | 늦다 | 가상 함수 |
정적 바인딩 | 컴파일 시간에 호출 함수가 결정된다. | 빠르다 | 일반 함수 |
중간 점검 (364p)
1. 소멸자를 가상 함수로 만들지 않으면 어떤 문제점이 발생하는가?
2. 어떤 경우에 반드시 부모 클래스의 소멸자에 virtual을 붙여야 하는가?
중간 점검 (369p)
1. 순수 가상 함수의 용도는?
추상 클래스는 추상적인 개념을 나타내거나 클래스와 클래스 사이의 인터페이스를 나타내는 용도로 사용된다.
2. 모든 순수 가상 함수를 구현하여야 하는가?
추상 클래스를 어떤 클래스가 사용하기 위해서는 추상 클래스에 포함된 모든 가상 함수를 구현하여야 한다.
'C++' 카테고리의 다른 글
[C++] C++ ESPRESSO 중간 점검 3-11 (0) | 2022.04.05 |
---|---|
[C++] C++ ESPRESSO 중간 점검 2-10 (0) | 2022.04.04 |
[C++] C++ ESPRESSO 중간 점검 2-8 (0) | 2022.04.02 |
[C++] C++ ESPRESSO 중간 점검 2-7 (0) | 2022.04.01 |
[C++] C++ ESPRESSO 중간 점검 2-6 (0) | 2022.03.31 |