제가 보는 소스 중에 아래와 같이 함수 선언시에 function 키워드 앞에 class 키워드가 있는데 어떤 경우에 class 키워드를 function 키워드에 붙이는가요? Class function TMakeChat.Execute(Owner : TComponent; Category:string): TMak...
innover
•
2001.12.20 21:38
class function 이라는것은 인스턴스 없이도 실행이 가능한 펑션을 말합니다.
해당 클래스에 대한 일반적...
파스칼
•
2001.12.28 03:25
답변 주셔서 감사합니다.^^;;
innover wrote:
> class function 이라는것은 인스턴스 없이도 실행이 ...
이경문
•
2001.12.21 07:44
참고임돠.
OOP에서는 meta class라고 하고
C++에서는 static이라는 예약어를 붙인답니다.
java에서도 사...
파스칼
•
2001.12.28 03:58
답변 주셔서 감사합니다.^^;;
제가 델파이(파스칼)을 접한지 얼마 안되었습니다. ^^;;
참고로 java에...
해당 클래스에 대한 일반적인 작업을 하는 펑션을 정의할 수 있죠.
가령
function TMyClass.MyFunction: string;
class function TMyClass.MyClassFunction: string;
이 두개가 있다고 치면
보통 펑션은 다음과 같이 쓰지요.
var
Class: TMyClass;
ShowMessage(Class.Myfunction);
클래스 펑션은 다음과 같이 씁니다.
ShowMessage(TClass.MyClassfunction);
물론 인스턴스로 써줘도 작동합니다.
바로 클래스형.함수명 을 쓸 수 있지요
대신에 인스턴스를 사용하면 안됩니다. 자신의 멤버변수도 쓸 수가 없죠(원래 OOP개념에는 클래스멤버변수가 있어서 그것만을 쓸 수 있지만 오브젝트 파스칼에는 클래스멤버변수를 지원하지 않습니다.).
결국 오브젝트 파스칼(델파이)에서는 단지 그 클래스와 관련돼있다는것을 나타내는것을 빼고는 일반 펑션과 별반 다를 것이 없습니다.
설명이 제대로 되었을랑가 모르겠네요
그럼..
파스칼 wrote:
> 제가 보는 소스 중에 아래와 같이 함수 선언시에 function 키워드 앞에 class 키워드가 있는데 어떤 경우에 class 키워드를 function 키워드에 붙이는가요?
>
> Class function TMakeChat.Execute(Owner : TComponent; Category:string): TMakeChat;
>
> 이런 선언의 의미가 먼지 알려주세요?
>
>