본문 바로가기
C++/명품 C++ Programming

[C++/명품 C++ Programming]명품 C++ 9장 연습문제 - 이론 문제

by starfish22 2022. 5. 12.
728x90

1. 1번

 

2. 2번

 

3. 2번 3번 compile-time binding

 

4. 다형성

 

5.

(1) 기본 클래스 : Base , 파생 클래스 : Derived

(2) Derived::f() called

(3) Base::f() called

(4) Base::f() called

(5) Base::f() called

 

6.

(1) 1, 2, 3

(2) C::f() called

(3) C::f() called

(4) C::f() called

(5) C::f() called

 

7. 가까운, 범위 규칙, virtual 키워드 범위 지정 연산자

 

8.

(1)

void g() { ::f(); }

(2)

void g() { A::f(); }

(3)

void g() { f(); }

 

9. 2번 소멸자를 가상 함수로 선언하는 것이 바람직하다.

 

10.

(1) 실행결과는 "id=10" 이다. 가상 함수로 선언하지 않아 클래스 Student의 소멸자가 실행되지 않는다.

(2)

virtual ~Person() {cout << "id="<< id << endl; }

 

11. 3번 virtual 선언한 후 =0 을 뒤에 붙여준다.

 

12. 3번 기본 클래스와 파생클래스만이 선언 가능하다.

 

13. 2번

 

14.

(1) 1번 추상 클래스는 개체를 생성할 수 없다.

(2)

#include <iostream>
using namespace std;

class Shape {
public:
    void paint() { draw(); }
    virtual void draw() = 0;
};

class Circle : public Shape {
    int radius;
public:
    Circle(int radius = 1) { this->radius = radius; }
    double getArea() { return 3.14 * radius * radius; }
    virtual void draw() { cout << "반지름=" << radius << "인 원" << endl; }
};

int main() {
    Circle *p = new Circle(10);
    p->paint();
    delete p;
}

 

15. 4번 순수 가상 함수 호출

728x90

댓글