15. [C++] 객체지향 프로그래밍의 이해, 정보은닉, 캡슐화
2024. 4. 12. 14:44ㆍ[C++]/C++ 언어 기초
실습 문제
다음의 Point 클래스를 기반으로 하여(활용하여) 원을 의미하는 Circle 클래스를 정의하자
class Point
{
private:
int xpos, ypos;
public:
void Init(int x, int y)
{
xpos = x;
ypos = y;
}
void ShowPointInfo() const
{
cout << "[" << xpos << ", " << "]" << endl;
}
};
Circle 객체에는 좌표상의 위치정보(원의 중심좌표)와 반지름의 길이 정보를 저장 및 출력할 수 있어야 한다.
그리고 여러분이 정의한 Circle 클래스를 기반으로 Ring 클래스도 정의하자. 링은 두개의 원으로 표현 가능하므로(바깥쪽 원과 안쪽 원), 두 개의 Circle 객체를 기반으로 정의가 가능하다. 다음 main 함수를 기반으로 실행시키자
int main(void)
{
Ring ring;
ring.Init(1, 1, 4, 2, 2, 9);
ring.ShowRingInfo();
return 0;
}
Init 함수호출을 통해서 전달된 1, 1, 4는 안쪽 원의 정보에 해당하며(순서대로 X, Y, 반지름)
이어서 전달된 2, 2, 9는 바깥쪽 원의 정보에 해당한다.(순서대로 X, Y, 반지름)
그리고 실행 결과는 다음과 같거나 유사해야한다.
[실행의 예]
Inner Circle Info...
radius : 4
[1, 1]
Outter Circle Info...
radius : 9
[2, 2]
내 풀이
#include "stdafx.h"
#include <iostream>
#include <cstring>
using namespace System;
using namespace std;
class Point
{
private:
int xpos, ypos;
public:
void Init(int x, int y)
{
xpos = x;
ypos = y;
}
void ShowPointInfo() const
{
cout << "[" << xpos << ", " << "]" << endl;
}
int GetX(){
return xpos;
}
int GetY(){
return ypos;
}
};
class Circle{
private:
Point pos;
int radius;
public:
void Init(int x, int y, int r){
pos.Init(x, y);
radius = r;
}
int GetX(){
return pos.GetX();
}
int GetY(){
return pos.GetY();
}
int GetR(){
return radius;
}
};
class Ring{
private:
Circle c1;
Circle c2;
public:
void Init(int x1, int y1, int r1, int x2, int y2, int r2){
c1.Init(x1, y1, r1);
c2.Init(x2, y2, r2);
}
void ShowRingInfo(){
cout <<"Inner Circle Info..."<<endl<<"radius: "<<c1.GetR()<<endl;
cout <<"["<<c1.GetX()<<", "<<c1.GetY()<<"]"<<endl;
cout <<"Outer Circle Info..."<<endl<<"radius: "<<c2.GetR()<<endl;
cout <<"["<<c2.GetX()<<", "<<c2.GetY()<<"]"<<endl;
}
};
int main (void)
{
Ring ring;
ring.Init(1, 1, 4, 2, 2, 9);
ring.ShowRingInfo();
return 0;
}
반응형
'[C++] > C++ 언어 기초' 카테고리의 다른 글
04-05 은행계좌문제 2단계 (0) | 2024.04.15 |
---|---|
16. [C++] 생성자(Constructor)와 소멸자(Destructor) (0) | 2024.04.12 |
14. [C++] 클래스(Class)와 객체(Object) (1) | 2024.04.12 |
13. [C++] C++에서의 구조체 (0) | 2024.04.12 |
12. [C++] C++에서 C언어의 표준함수 호출하기 (0) | 2024.04.11 |