【发布时间】:2008-12-11 19:36:38
【问题描述】:
我有一个类层次结构,这个:
type
TMatrix = class
protected
//...
public
constructor Create(Rows, Cols: Byte);
//...
type
TMinMatrix = class(TMatrix)
private
procedure Allocate;
procedure DeAllocate;
public
constructor Create(Rows, Cols: Byte);
constructor CreateCopy(var that: TMinMatrix);
destructor Destroy;
end;
如您所见,派生类和基类构造函数都具有相同的参数列表。 我从派生类中显式调用基类构造函数:
constructor TMinMatrix.Create(Rows, Cols: Byte);
begin
inherited;
//...
end;
Delphi中是否需要显式调用基类构造函数?可能我需要超载或覆盖以清除我打算做什么?我知道如何在 C++ 中做到这一点——只有当你想向它传递一些参数时才需要显式调用基类构造函数——但我在 Delphi 编程方面没有太多经验。
【问题讨论】:
-
在我看来,所有德尔福大师现在都在工作或睡觉,所以他们无法回答
-
不睡觉,我的电脑今天很慢。
-
顺便说一句,我记得我的一些旧代码中的一些非常难以发现的错误是由于忘记显式调用继承的构造函数而引起的...... :)
标签: delphi inheritance constructor