|
정확히 무엇을 원하시는지 모르겟네요
의문1. 클래스 Point 는 왜 필요하죠?
클래스 코딩으로 봐서는 왜 필요한지 알수가 없네요
문제1. 클래스 는 함수나 변수를 감출수있는게 특징인데 전혀 쓰지 않았고
기본적으로 생성자 소멸자는 public으로 해야하는데.. 그리 되어있지 않네요
의문2. 사각형의 넓이구하는것을 모르신다는것인지? 출력하는것을 모르신다는것인지?
아니면 무얼해달라는것인지요?
======================================================================
그래도 그냥 님의 클래스 코드를 약간 수정해봤습니다.
혹 참조가 될런지.....
#include <stdio.h>
//------------------------------
class Point
{
public:
Point(){};
~Point(){};
virtual int GetArea(){};
};
//------------------------------
class Point2D : public Point
{
public:
Point2D::Point2D()
{
x=1; //생성자에서 초기화 시키는 부분
y=2;
}
~Point2D(){} ;
int Point2D::GetArea()
{
return abs(x*y); //사각형의 넓이
};
//private:
int x; int y;
};
//------------------------------
class Point3D : public Point
{
public:
Point3D()
{
x=1; //생성자에서 초기화 시키는 부분
y=2;
z=3;
};
~Point3D() {} ;
int Point3D::GetArea()
{
return abs(x*y*z); //직육면체의 넓이
};
//private:
int x; int y; int z;
};
//===============================
int main(int argc, char* argv[])
{
Point3D *Pt3d=new Point3D;
Point2D *Pt2d=new Point2D;
//-----
printf("Point3D = %d \r\n",Pt3d->GetArea());
printf("Point2D = %d \r\n",Pt2d->GetArea());
delete Pt3d;
delete Pt2d;
getchar();
return 0;
}
//---------------------------------------------------------------------------
이상입니다.
홍순규 님이 쓰신 글 :
: 문제가
:
: 기본 클래스 Point는 추상 클래스로 GetArea()를 멤버로 가지고 있다.
: 이것을 상속하여 int x, y 좌표와 GetArea()를 가지고 있는
: Point2D 클래스와 int x, y, z 좌표와 GetArea()를 가지고 있는 Point3D 클래스를 정의한다.
: GetArea()는 원점을 기준으로 사각형 면적과 육면체 부피를 계산하여 출력한다.
: 두 클래스 모두 x, y, z를 1, 2, 3으로 초기화하는 생성자를 만든다.
: main()에서는 Point 클래스 객체 포인터를 이용하여 면적과 부피를 출력한다.
:
: 이거인데...
:
: 클래스는 짰는데
: 나머지가 잘 안되네요...
: 나머지좀 가르쳐 주세요1!
:
:
:
: class Point
: { Point(); ~Point(); virtual int GetArea();}
:
: class Point2D : public Point
: { Point2D(); ~Point(); virtual int GetArea();, int x; int y;};
:
: class Point3D : public Point
: { Point3D() {}; virtual ~Point3D() {} ; virtual int GetArea(); int x; int y; int z;};
|