Главная страница
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.03 c
1-1153729873
DmitryK
2006-07-24 12:31
2006.09.03
Работа с RTF


4-1147205976
444ert666
2006-05-10 00:19
2006.09.03
TRAY-help!!!!!!!!!!!!!!!!


1-1153412058
kaif
2006-07-20 20:14
2006.09.03
Так как все-таки перекомпилировать рантайм библиотеки VCL?


15-1155297927
ArtemESC
2006-08-11 16:05
2006.09.03
Пытался установить 4 диска Брокгаузъ и Ефронъ...


4-1147002915
Dstr
2006-05-07 15:55
2006.09.03
ApplicationEvents1Message