面向对象问题 ( 积分: 50 )

  • 主题发起人 主题发起人 hlwbn
  • 开始时间 开始时间
H

hlwbn

Unregistered / Unconfirmed
GUEST, unregistred user!
小弟,对面向对象理解浅薄,请大虾诠释几个问题。
1。inherited 放在程序中不同位置有什么区别。
2。TControlClass =class of TControl; 这样定义类什么意义呀?
TControlFactory=class 该类定义是不是等同于 TControlFactory=class(TObject)
 
小弟,对面向对象理解浅薄,请大虾诠释几个问题。
1。inherited 放在程序中不同位置有什么区别。
2。TControlClass =class of TControl; 这样定义类什么意义呀?
TControlFactory=class 该类定义是不是等同于 TControlFactory=class(TObject)
 
1、inherited 就是执行父类的同名方法,所以有区别,就是说是先执行父类同名方法还是直接自己写的代码
2、正在学习中,鸟语看不懂

A class-reference type, sometimes called a metaclass, is denoted by a construction of the form

class of type

where type is any class type. The identifier type itself denotes a value whose type is class of type. If type1 is an ancestor of type2, then class of type2 is assignment-compatible with class of type1. Thus

type TClass = class of TObject;

var AnyObj: TClass;

declares a variable called AnyObj that can hold a reference to any class. (The definition of a class-reference type cannot occur directly in a variable declaration or parameter list.) You can assign the value nil to a variable of any class-reference type.
To see how class-reference types are used, look at the declaration of the constructor for TCollection (in the Classes unit):

type TCollectionItemClass = class of TCollectionItem;

...
constructor Create(ItemClass: TCollectionItemClass);

This declaration says that to create a TCollection instance object, you must pass to the constructor the name of a class descending from TCollectionItem.
Class-reference types are useful when you want to invoke a class method or virtual constructor on a class or object whose actual type is unknown at compile time.
 
1.
begin
......//先做自己的事
inherited;//再做父类的事
end

begin
inherited;//先做父类的事
......//再做自己的事
end;

//还可以,.我就不解释了
begin
......//
inherited;
......//
end;

2.
TControlClass =class of TControl;//就是TControlClass 从TControl继承撒
TControlFactory=class 该类定义等同于 TControlFactory=class(TObject)
 
我靠,ak_2005你可真能误人子弟啊,TControlClass 是定义了一个类类型,关于类类型
可以参考delphi的帮助,其目的是为了利用delphi的类反射机制,以及某些情况下的参数传递,实现C++中用模板实现的一些东西。
 
不要激动,是我看漏了,类类型我也知道的.谢谢提醒.
to 楼主:
TControlClass =class of TControl;//就是TControlClass 从TControl继承撒
这句话我说错了! 哈哈哈,经常叫别人用类类型,想不到自己都搞不懂了!随意了!
 

Similar threads

回复
0
查看
876
不得闲
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
674
Samaritans
S
I
回复
0
查看
637
import
I
后退
顶部