C언어 도형의 상속구조
너에게제공
462 0 0
#include <iostream>
#include <string>
using namespace std;
class Shape
{
protected:
int x, y;
public:
Shape(int x=0, int y=0) { this->x=x, this->y=y; }
void setOrigin(int x, int y) { this->x=x, this->y=y;}
void draw() { cout<<"Shape draw"<<endl; }
void printPosition() { cout<<" x : "<<x<<" y : "<<y<<endl; }
};
class Rectangle : public Shape
{
private:
int width, height;
public:
Rectangle (int x=0, int y=0, int w=5, int h=10) : Shape(x,y)
{width=w; height=h;}
void setWidth(int w){width=w;}
void setHeight(int h) { height=h; }
void draw() { cout<<"Rectange draw"<<endl; }
void printPosition() {Shape :: printPosition(); cout<<"width : "<<width<<" height : "<<height<<endl;}
};
int main()
{
Rectangle *pr = new Rectangle(); // 동적으로 객체 생성
pr->printPosition(); // 정보 출력
pr->setOrigin(10,10); // x를 10, y를 10으로 변경
pr->printPosition(); // 정보 출력
pr->setWidth(100); // width를 100으로 변경
pr->setHeight(200); // height를 200으로 변경
pr->printPosition(); // 정보 출력
delete pr;
}
#include <string>
using namespace std;
class Shape
{
protected:
int x, y;
public:
Shape(int x=0, int y=0) { this->x=x, this->y=y; }
void setOrigin(int x, int y) { this->x=x, this->y=y;}
void draw() { cout<<"Shape draw"<<endl; }
void printPosition() { cout<<" x : "<<x<<" y : "<<y<<endl; }
};
class Rectangle : public Shape
{
private:
int width, height;
public:
Rectangle (int x=0, int y=0, int w=5, int h=10) : Shape(x,y)
{width=w; height=h;}
void setWidth(int w){width=w;}
void setHeight(int h) { height=h; }
void draw() { cout<<"Rectange draw"<<endl; }
void printPosition() {Shape :: printPosition(); cout<<"width : "<<width<<" height : "<<height<<endl;}
};
int main()
{
Rectangle *pr = new Rectangle(); // 동적으로 객체 생성
pr->printPosition(); // 정보 출력
pr->setOrigin(10,10); // x를 10, y를 10으로 변경
pr->printPosition(); // 정보 출력
pr->setWidth(100); // width를 100으로 변경
pr->setHeight(200); // height를 200으로 변경
pr->printPosition(); // 정보 출력
delete pr;
}