Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.09.03;
Скачать: CL | DM;

Вниз

Про типы/наследование   Найти похожие ветки 

 
Чапаев ©   (2006-07-21 11:53) [0]

type TMyButton=type TButton и type TMyButton=class(TButton) end;

В чём различия? Чем в дальнейшем может грозить первая форма (если никаких изменений в TButton вноситься не будет)?


 
Reindeer Moss Eater ©   (2006-07-21 11:57) [1]

В первом случае TMyButton не наследник, а просто синоним.
Во втором - полноценный наследник.


 
Чапаев ©   (2006-07-21 12:00) [2]


> В первом случае TMyButton не наследник, а просто синоним.

Синонимом был бы, если бы type TMyButton=TButton. А тут как бы новый тип... Что не наследник в терминах ООП, это понятно.


 
Мефисто   (2006-07-21 12:06) [3]

X and Y are of the same type; at runtime, there is no way to distinguish TValue from Real. This is usually of little consequence, but if your purpose in defining a new type is to utilize runtime type information--for example, to associate a property editor with properties of a particular type--the distinction between "different name" and "different type" becomes important. In this case, use the syntax

type newTypeName = type type

For example,

type TValue = type Real;

forces the compiler to create a new, distinct type called TValue.

For var parameters, types of formal and actual must be identical. For example,

type
 TMyType = type Integer
procedure p(var t:TMyType);
begin end;

procedure x;
var
 m: TMyType;
 i: Integer;
begin
 p(m); //Works
 p(i); //Error! Types of formal and actual must be identical.
end;

Note

This only applies to var parameters, not to const or by-value parameters.


 
Reindeer Moss Eater ©   (2006-07-21 12:06) [4]

В справке описано в чем  разница обеих случаев.
Для самого класа нет никаких подводных камней.
Есть разница для редактором свойств и типизированных вар-параметров.


 
Чапаев ©   (2006-07-21 12:08) [5]


> This only applies to var parameters

Во. Теперь вижу разницу. ;-)



Страницы: 1 вся ветка

Текущий архив: 2006.09.03;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.045 c
2-1155645918
Батыр
2006-08-15 16:45
2006.09.03
NMSMTP1.PostMessage


15-1154728907
Garr
2006-08-05 02:01
2006.09.03
А что в Microsoft Visual C++ 6.0 не показывается где ошибка??


15-1155408021
Firefly
2006-08-12 22:40
2006.09.03
Дипломная работа


2-1155419884
ronyn
2006-08-13 01:58
2006.09.03
ACSII получить номер символа


4-1147107989
Destroyer
2006-05-08 21:06
2006.09.03
Удаление занятого файла