Notice
Recent Posts
Recent Comments
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
Archives
Today
Total
관리 메뉴

SYDev

C++ Chapter 04-3 : 생성자(Constructor)와 소멸자(Destructor) 문제풀이 본문

Programming Lang/C++

C++ Chapter 04-3 : 생성자(Constructor)와 소멸자(Destructor) 문제풀이

시데브 2023. 7. 16. 16:45

문제

 앞서 풀었던 문제 04-2의 모든 클래스에 생성자를 정의하라.

 

문제풀이

#include <iostream>
using namespace std;

class Point
{
private:
    int xpos, ypos;
public:
    Point(int x, int y) 
        : xpos(x), ypos(y)
    {
    }

    void ShowPointInfo() const
    {
        cout<<"["<<xpos<<", "<<ypos<<"]"<<endl;
    }
};

class Circle
{
private:
    Point cirmid;
    int rad;
public:
    Circle(const int &x,const int &y, const int &r) 
        : cirmid(x, y), rad(r)
    {
    }
    void ShowPointInfo() const
    {
        cout<<"radius : "<<rad<<endl;
        cirmid.ShowPointInfo();
    }    
};

class Ring
{
private: 
    Circle innerCir;
    Circle outterCir;
public:
    Ring(const int &x1, const int &y1,const int &rad1, const int &x2, const int &y2,const int &rad2 )
        : innerCir(x1, y1, rad1), outterCir(x2, y2, rad2)
    {
    }
    void ShowRingInfo() const
    {
        cout<<"Inner Circle Info..."<<endl;
        innerCir.ShowPointInfo();
        cout<<"Outter Circle Info..."<<endl;
        outterCir.ShowPointInfo();
    }
};

int main(void)
{
    Ring ring(1, 1, 4, 2, 2, 9);
    ring.ShowRingInfo();
    
    return 0;
}
Inner Circle Info...
radius : 4
[1, 1]
Outter Circle Info...
radius : 9
[2, 2]

 


출처 : 윤성우, <윤성우의 열혈 C++ 프로그래밍>, 오렌지미디어, 2010.05.12