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
[1551] [답변] EDISEY/ TForm1::TForm1(TComppnent *Owner)/프포
박지훈.임프 [cbuilder] 3501 읽음    1999-07-09 17:51
안녕하세요. 천리안 프로그래머 포럼 C++Builder 담당 임펠리테리입니다.

빌더에서는 새로운 어플리케이션 프로젝트를 생성하면 자동으로 생성자를 만들어

주지만, 델파이에서는 생성자를 만들어주지 않습니다. 빌더는 C++ 툴이므로

생성자는 클래스이름과 같은 함수가 되지만, 델파이의 오브젝트 파스칼에서는

생성자 이름은 무조건 Create입니다. 그리고 생성자는 반드시 override 키워드로

지정해줘야 합니다.

먼저, interface 부분의 public 섹션에 생성자의 선언을 추가합니다.

  public
    constructor Create(AOwner: TComponent); override;

그리고, 생성자 함수의 바디...

constructor TForm1.Create(AOwner: TComponent);
begin
    inherited Create(AOwner);
end;

inherited Create(AOwner) 부분을 반드시 추가해줘야 합니다. C++에서는 다음과

같은 형식으로 베이스클래스의 생성자를 호출해주지만...

__fastcall TForm1::TForm1(TComponent* Owner)
    : TForm(Owner) // ---> 이 라인이 베이스클래스의 생성자 호출부분!

델파이의 문법에서는 명시적으로 inherited 키워드로 호출해주어야 합니다.


그리고 스트링 배열의 선언...

Const, 즉 값을 바꾸지 않을 배열이라면 C++에서처럼 선언과 동시에 초기화가 가능

하지만, const가 아닌 배열은 안됩니다.

const
    CharArray : Array[0..3] of String = ('a', 'b', 'c', 'd');
begin
...
만약 배열 인자의 값을 바꾸어야 한다면...

Var
    CharArray : Array[0..3] of String;
begin
    CharArray[0] := 'a';
    CharArray[1] := 'b';
    CharArray[2] := 'c';
    CharArray[3] := 'd';
...

이렇게, 좀 번거롭게 코딩해야 하죠.

그럼 참고하시길...




임펠리테리 박지훈이었습니다.

(http://myhome.thrunet.com/~cbuilder, cbuilder@thrunet.com)



+ -

관련 글 리스트
1548 [질문] TForm1::TForm1(TComppnent *Owner)/프포 edisey 3307 1999/07/09
1551     [답변] EDISEY/ TForm1::TForm1(TComppnent *Owner)/프포 박지훈.임프 3501 1999/07/09
1552         [감사] 감사합니다./프포 edisey 3156 1999/07/09
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.