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
[28378] [답변] vcl.h 사용에 의한 클래스 중복과 생성자의 사용 오류
정성훈.해미 [sage5nor] 1332 읽음    2003-12-31 10:45
안녕하십니까.
정성훈.해미입니다.

---------------------------------------------------------------
1. 상단의 #include <vcl.h>를 없앤다.
덧글 달아주신 분의 말처럼 상단의 #include <vcl.h>를 없애야합니다.
vcl.h를 포함 시키면 사용자가 정의한 Rectangle클래스보다
vcl.h에서 불러오는(?) Rectangle클래스가 우선합니다.
[확인하기]------------------------------------------------------
main에 사용된 Rectangle부분을 (Ctrl + 마우스 왼쪽클릭)을 해 보세요.
정의되어 있는 곳으로 찾아갑니다.
#include <vcl.h>를 없애면 현재소스의 상단에 있는 클래스로 갈꺼고
없애지 않으면 다른 헤더파일에 있는 클래스로 갑니다.
[팁]------------------------------------------------------------
Console Wizard를 이용하실 때 [Use VCL]을 체크하지 않으면
상단에 #include<vcl.h>가 나타나지 않습니다.

-----------------------------------------------------------------
2. 생성자 정의를 바꾼다.
정의해준 Rectangle클래스에서 생성자의 형식을 보면
Rectangle(int width, int height); 입니다.
인수의 기본값이 없습니다.
이것은 다음과 같이 사용해야 한다는 것을 나타냅니다.
Rectangle rect(100,100);

하지만 생성자의 정의를 다음과 같이 하면(인수들의 기본값을 지정)
Rectangle(int width=10, int height=10);
아래의 경우 모두 사용 가능합니다.
Rectangle rect;          //Rectangle rect(10,10);과 동일
Rectangle rect(100);     //Rectangle rect(100,10);과 동일
Rectangle rect(100,100);


//---------------------------------------------------------------------------

오동섭 님이 쓰신 글 :
: 안녕하세요..c++ 빌더로 공부를 하고 있습니다..
:
: 도데체 이 소스의 에러의 이유를 모르겠네요..참고로 teach your self c++10.2 소스입니다..이것 말고도 소스 에러가 부지기수로 나고 있어서 고치고 고쳐서 코딩해보는데 힘드네요..휴..
:
: //---------------------------------------------------------------------------
:
: #include <vcl.h>
: #include <iostream.h>
: #pragma hdrstop
:
: //---------------------------------------------------------------------------
:
: class Rectangle
: {
: public :
:         Rectangle(int width, int height);
:         ~Rectangle();
:
:         void DrawShape(int aWidth, int aHeight, int UseCurrentVals = 1);
:
: private :
:         int itsWidth;
:         int itsHeight;
: };
:
: Rectangle::Rectangle(int width, int height)
: {
:         itsWidth = width;
:         itsHeight = height;
: }
:
: Rectangle::~Rectangle()
: {
: }
:
: void Rectangle::DrawShape(int width, int height, int UseCurrentVals)
: {
:         int printWidth;
:         int printHeight;
:
:         if (UseCurrentVals != 1)
:           {
:                 printWidth = itsWidth;
:                 printHeight = itsHeight;
:           }
:         else
:           {
:                 printWidth = width;
:                 printHeight = height;
:           }
:
:         for (int i = 0; i<printWidth; i++)
:           {
:             for(int j = 0; j<printHeight; j++)
:               {
:                 cout << "*";
:               }
:             cout << "\n";
:           }
: }
:
: int main()
: {
:         Rectangle rect;
:         cout << "DrawShape(0, 0, TRUE)..\n";
:         rect.DrawShape(0, 0, TRUE);
:         cout << "DrawShape(40, 2)..\n";
:         rect.DrawShape(40, 2);
:
:         int i;
:         cin >> i;
:         return 0;
: }
: //---------------------------------------------------------------------------
:
:
: 에러는 메인함수의         Rectangle rect;              -> E2379 Statement missing ;
:                           rect.DrawShape(0, 0, TRUE);  -> E2451 Undefined symbol 'rect'
:
: 에서 나옵니다..도데체 이유가 뭘까요? 흐흐흑..
:

+ -

관련 글 리스트
28371 에러의 이류를 모르겠습니다.. 오동섭 888 2003/12/30
34208     Re:에러의 이류를 모르겠습니다.. 오동섭 814 2003/12/31
34207     Re:에러의 이류를 모르겠습니다.. 김상구.패패루 883 2003/12/31
34206     Re:에러의 이류를 모르겠습니다.. oseb 817 2003/12/30
34205     Re:에러의 이류를 모르겠습니다.. oseb 805 2003/12/30
28378     [답변] vcl.h 사용에 의한 클래스 중복과 생성자의 사용 오류 정성훈.해미 1332 2003/12/31
34204         Re:[답변] vcl.h 사용에 의한 클래스 중복과 생성자의 사용 오류 오동섭 941 2003/12/31
34203         Re:[답변] vcl.h 사용에 의한 클래스 중복과 생성자의 사용 오류 오동섭 903 2003/12/31
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.