메소드


메소드는 클래스와 연관된 프로시저나 함수입니다. 메소드를 호출하려면 메소드가 작동하는 객체(클래스 메소드의 경우에는 클래스)를 지정해야 합니다. 예를 들어 SomeObject.Free 호출은 SomeObject 객체의 Free 메소드를 호출합니다.


메소드 선언과 구현


클래스 선언 내에서 메소드는 프로시저나 함수의 헤더로 나타나며, forward 선언처럼 동작합 니다. 각메소드는 클래스 선언 이후의 같은 모듈 내에서 정의적 선언으로 구현되어야 합니다. 예를 들어, TMyClass의 선언이 DoSomething이라는 메소드를 포함한다고 가정해 봅시다. 


Object_6_1.png


DoSomething의 선언 정의는 모듈 뒷 부분에 나타나야 합니다.


Object_6_2.png


클래스 선언은 유닛의 인터페이스나 임플먼테이션 섹션 중 어디에나 있을 수 있지만, 클래스 메소드의 정의적 선언은 임플먼테이션 섹션에 있어야 합니다.


정의적 선언의 헤더에서 메소드 이름은 항상 해당 메소드가 속한 클래스 이름으로 한정되어 야 합니다. 헤더는 클래스 선언에 있는 헤더의 파라미터 목록을 반복할 수 있으며, 그런 경우 파라미터의 순서, 타입 및 이름이 정확하게 일치해야 합니다. 메소드가 함수인 경우에는 리 턴값의 타입도 반드시 일치해야 합니다.


메소드 선언은 다른 함수나 프로시저에는 사용되지 않는 특수한 지시어를 포함할 수 있습니 다. 지시어는 정의적 선언이 아닌 클래스 선언에만 나타나야 하며, 다음과 같은 순서가 되어 야 합니다.


Object_6_3.png


여기서 binding은 virtual, dynamic 또는 override이고, calling convention은 register, pascal, cdecl, stdcall 또는 safecall이며, warning은 platform, deprecated 또는 library입니다.


■ inherited


예약어 inherited는 다형적(polymorphic) 동작을 구현하는 데 특수한 역할을 수행합니다. inherited는 메소드 정의문에 나타나며, 뒤에 식별자가 따라오거나 따라오지 않을 수 있습니다. inherited 다음에 메소드 멤버의 이름이 나오면, 이것은 일반적인 메소드 호출 또는 속성이 나 필드의 참조를 나타내는데, 한 가지 다른 점은 이 메소드를 찾을 때, 메소드가 속한 클래 스의 바로 위 조상 클래스부터 찾기 시작한다는 점입니다. 예를 들면,


Object_6_4.png


이것은 메소드의 정의에 나타나며, 상속된 Create를 호출합니다.


inherited 다음에 식별자가 따라오지 않으면, 이것은 자신을 포함하는 메소드와 같은 이름을 가지는 상속된 메소드를 나타내거나, 메시지 핸들러인 경우 동일 메시지에 대해 상속된 메시 지 핸들러를 나타냅니다. 이러한 경우, inherited에는 명시적인 파라미터가 없지만, 해당 메 소드에 전달된 파라미터와 같은 파라미터를 상속된 메소드로 전달합니다. 예를 들면,


Object_6_5.png


이 문법은 생성자의 구현에서 자주 나타납니다. 상속된 생성자를 자손에게 전달한 파라미터 와 같은 파라미터와 함께 호출합니다.



참조링크

http://tech.devgear.co.kr/devgearbook

델파이 프로그래밍 언어 - 엠바카데로 저 | 박지훈 역 (2009년)

번호 제목 글쓴이 날짜 조회 수
공지 [DelphiCon 요약] 코드사이트 로깅 실전 활용 기법 (Real-world CodeSite Logging Techniques) 관리자 2021.01.19 15465
공지 [UX Summit 요약] 오른쪽 클릭은 옳다 (Right Click is Right) 관리자 2020.11.16 13970
공지 [10.4 시드니] What's NEW! 신기능 자세히 보기 관리자 2020.05.27 16505
공지 RAD스튜디오(델파이,C++빌더) - 고객 사례 목록 관리자 2018.10.23 22061
공지 [데브기어 컨설팅] 모바일 앱 & 업그레이드 마이그레이션 [1] 관리자 2017.02.06 23270
공지 [전체 목록] 이 달의 기술자료 & 기술레터 관리자 2017.02.06 18930
공지 RAD스튜디오(델파이, C++빌더) - 시작하기 [1] 관리자 2015.06.30 39264
공지 RAD스튜디오(델파이,C++빌더) - 모바일 앱 개발 사례 (2020년 11월 업데이트 됨) 험프리 2014.01.16 174728
1303 [UX Summit 요약] 레거시 데스크탑 앱 UI/UX 현대화 – 이론부터 실제까지 (Legacy desktop apps UI & UX modernization. From theory to practice) 관리자 2020.11.04 406
1302 델파이에서 파이썬 표현식 활용하기 (PYTHON4DELPHI 샘플 앱) 관리자 2020.11.03 876
1301 개발자가 지원해야 하는 핵심 플랫폼들 관리자 2020.11.02 299
1300 이 달의 기술자료 - 2020년 11월 file 험프리 2020.10.27 334
1299 DELPHICON 2020, 곧 시작됩니다! file 관리자 2020.10.27 287
1298 [UX Summit 요약] 윈도우10에 멋진 플루언트UI 룩앤필을 델파이로 구현하기 (Giving your Apps the Fluent UI Look and Feel with Delphi)을 요약했습니다. - (델파이 개발자 뿐만 아니라) 윈도우 애플리케이션 개발자가 알아야할 기본이되고 중요한 마이크로소프트 UI 디자인의 핵심을 정리하고 보여줍니다. 관리자 2020.10.26 392
1297 RAD스튜디오와 델파이 – 원조 로우코드! 관리자 2020.10.23 297
1296 [UX Summit 요약 / 사례연구] 모바일은 두 번째: 어떨 때 데스크톱에 우선 집중하는가? 관리자 2020.10.22 272
1295 XML MAPPER 업데이트 관리자 2020.10.21 280
1294 [UX Summit 요약] 데스크탑용 UX 구축/최적화 전략(Strategies for building and optimizing the desktop UX) 관리자 2020.10.21 254
1293 [UX Summit 요약] 훌륭한 UI에 적용되는 과학적 원리 (Science of Great UI) 관리자 2020.10.19 250
1292 [개발팁] 오래된 레거시 델파이, C++ 애플리케이션을 최신 스타일의 초고속 앱으로 마이그레이션하기 관리자 2020.10.15 337
1291 C++ 업데이트 소식: 10.4와 10.4.1에서 집중한 C++ 품질과 관련하여 관리자 2020.10.12 309
1290 [10.4 시드니][업데이트 1] 새로운 IDE 기능들 관리자 2020.10.08 335
1289 [엠바카데로 UX SUMMIT] 눈여겨 봐야할 컨텐츠들! 관리자 2020.10.06 290
1288 델파이용 볼드(BOLD FOR DELPHI) 오픈 소스 공개! 관리자 2020.09.25 484
1287 [업데이트 서브스크립션 고객 - 무상제공] C++ 컴파일 스피드를 확 높여줄 TwineCompile 관리자 2020.09.25 542
1286 이 달의 기술자료 - 2020년 10월 file 험프리 2020.09.24 358
1285 델파이 개발자를 위한 파이썬 file 관리자 2020.09.23 569
1284 [팁] VLC 플레이어(ActiveX Import 해) 사용하기 file 험프리 2020.09.22 1004