문제 3~4에 적용되는 2차원 상의 한 점을 표현하는 Point 클래스가 있다.
1. 문제
3. 다음 main() 함수가 실행되도록 Point 클래스를 상속받은 ColorPoint 클래스를 작성하고, 전체 프로그램을 완성하라.
2. 결과
3. 코드
#include <iostream>
#include <string>
using namespace std;
class Point {
int x, y;
public :
Point(int x, int y) { this->x = x; this->y = y; }
int getX() { return x; }
int getY() { return y; }
protected :
void move(int x, int y) { this->x = x; this->y = y; }
};
class ColorPoint : public Point {
string name;
public :
ColorPoint(int x, int y, string name) : Point(x, y) {
this->name = name; }
void setPoint(int x, int y){ move(x, y); }
void setColor(string name) { this->name = name; }
void show() { cout << name << "색으로 (" << getX() << "," << getY() << ")에 위치한 점입니다." << endl; }
};
int main() {
ColorPoint cp(5, 5, "RED");
cp.setPoint(10, 20);
cp.setColor("BLUE");
cp.show();
}
4. 설명
Point 클래스를 상속받은 ColorPoint 클래스를 작성합니다.
ColorPoint 클래스는 추가적으로 색을 입력 받으므로 string 변수 name을 선언합니다.
: Point( x, y) 를 추가하여서 Point클래스에서 Point( int x, int y) 생성자가 실행되도록 만들어 줍니다.
추가적으로 위치를 재설정하는 setPoint 멤버함수와 , 색을 재설정하는 setColor 멤버함수, show 멤버 함수를 작성합니다.
'명품 C++ programming' 카테고리의 다른 글
명품 C++ programming 실습문제 8장 5번 (0) | 2019.04.28 |
---|---|
명품 C++ programming 실습문제 8장 4번 (1) | 2019.04.22 |
명품 C++ programming 실습문제 8장 2번 (0) | 2019.04.22 |
명품 C++ programming 실습문제 8장 1번 (0) | 2019.04.21 |
명품 C++ programming 7장 Open Challenge (0) | 2019.04.18 |