C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[49488] Re:[질문] 프로그램 짤게 있는데 잘 안되네요.. 좀 봐주세요^^;;
장성호 [nasilso] 1018 읽음    2007-05-31 22:25
정확히 무엇을 원하시는지 모르겟네요

의문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;};

+ -

관련 글 리스트
49486 [질문] 프로그램 짤게 있는데 잘 안되네요.. 좀 봐주세요^^;; 홍순규 1089 2007/05/31
49488     Re:[질문] 프로그램 짤게 있는데 잘 안되네요.. 좀 봐주세요^^;; 장성호 1018 2007/05/31
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.