TObject
TObject to klasa w Delphi będąca najwyżej w hierarchii dziedziczenia. Jest zatem klasą bazową dla wszystkich innych klas. Dlatego też zdefiniowanie klasy w taki oto sposób:
jest równoważne z:
W klasie TObject zdefiniowany jest podstawowy zestaw metod służących między innymi do:
Po dokładny opis metod odsyłam do dokumentacji Delphi lub freepascala.
Pewna część tych metod nie wykonuje żadnych operacji, lecz służy za wskazówkę, jaką funkcjonalność mogą implementować klasy dziedziczące z TObject (np. procedura DefaultHandlerStr).
Jakie są korzyści z posiadania takiej klasy - jednego wspólnego korzenia hierarchii dziedziczenia? Pierwsze co przychodzi na myśl to zastosowania rodem z Javy, czyli generyczne kontenery oraz funkcje wykonujące różne operacje w zależności od typu obiektu. Ponieważ każdy obiekt dziedziczy z TObject, można na niego wskazać wskaźnikiem lub referencją do TObject. Zatem do procedury o następującej sygnaturze:
można przekazać argument dowolnej klasy.
Zobacz też:
jest równoważne z:
TMyClass = class { <- Nie ma zdefiniowanego dziedziczenia!!! }
procedure MyProcedure(arg: Int64);
end;
procedure MyProcedure(arg: Int64);
end;
W klasie TObject zdefiniowany jest podstawowy zestaw metod służących między innymi do:
- tworzenia, destrukcji i inicjalizacji obiektów (np. konstruktor Create, destruktor Destroy, Free)
- introspekcji w czasie działania programu, tzw. RTTI (np. ClassType, ClassInfo, ClassName)
- obsługi wyjątków i komunikatów (np. Dispatch, SafeCallException)
Po dokładny opis metod odsyłam do dokumentacji Delphi lub freepascala.
Pewna część tych metod nie wykonuje żadnych operacji, lecz służy za wskazówkę, jaką funkcjonalność mogą implementować klasy dziedziczące z TObject (np. procedura DefaultHandlerStr).
Jakie są korzyści z posiadania takiej klasy - jednego wspólnego korzenia hierarchii dziedziczenia? Pierwsze co przychodzi na myśl to zastosowania rodem z Javy, czyli generyczne kontenery oraz funkcje wykonujące różne operacje w zależności od typu obiektu. Ponieważ każdy obiekt dziedziczy z TObject, można na niego wskazać wskaźnikiem lub referencją do TObject. Zatem do procedury o następującej sygnaturze:
można przekazać argument dowolnej klasy.
Zobacz też:



Proszę o wybaczenie i poprawienie ewentualnych błędów/niedomówień.
Jeśli ktoś ma wystarczającą determinację, by opisać wszystkie metody i dane w klasie TObject, to byłoby super.
czy ty umiesz zdania z sensem składać czy tak piszesz co ci ślina na palce przyniesie?? Generalnie daj sobie spokój z poprawianiem tego, bo coraz gorsze bzdury piszesz
może na razie dam sobie jednak spokój z czytaniem
Dobra poprawię po raz piąty xD
Dobra poprawiono - definicja jak należy
- Rodzica klasy
pisał pierwszy autor a nie "pyszczek" =]
a z jakiej byś klasy nie dziedziczył to i tak dostaniesz flaki od TObject =]
a zamiast narzekać to coś popraw =]
- Nazwę klasy
- Rodzica klasy
- Konstruktor, Destruktor oraz ponad 20 procedur i funkcji"
Nie bardzo rozumiem. Co miałeś na myśli pisząc "dziedziczyć nazwę klasy"? Albo w jaki sposób z klasy TObject można dziedziczyć rodzica klasy? Jeśli masz na myśli klasę bazową, to mimo wszystko nadal nie rozumiem, gdyż TObject, jako klasa bazowa dla wszystkich innych klas w Delphi (ta na samym początku w hierarchii dziedziczenia) nie posiada swojej klasy bazowej. "Konstruktor, Destruktor oraz ponad 20 procedur i funkcji" można odziedziczyć również po każdej innej klasie, nie tylko TObject (z dokładnością do stałej).
Generalnie zgadzam się z Misiekd: bardziej do śmieci niż tu. Moim zdaniem wymaga porządnego poprawienia.
Ogólnie bardziej do śmieci niż tu