[Warning] uClasses.pas(44): Method 'Destroy' hides virtual method of base type 'TObject'TDB = Class(TObject)
public
destructor Destroy; overload;
procedure ConnectDB(AState: Boolean);virtual;abstract;
end;TsqlServer = Class(TDB)
private
FADOQSql: TADOQuery;
protected
//
public
constructor Create(AServerName: string; ADBName: string; AUserName: string;
APassword: string); overload;
destructor Destroy; overload;
procedure ConnectDB(AState: Boolean);
end;
编译时出现如下警告:[Warning] uClasses.pas(44): Method 'Destroy' hides virtual method of base type 'TObject'
[Warning] uClasses.pas(153): Method 'ConnectDB' hides virtual method of base type 'TDB'不知是什么问题
public
destructor Destroy; overload;
procedure ConnectDB(AState: Boolean);virtual;abstract;
end;TsqlServer = Class(TDB)
private
FADOQSql: TADOQuery;
protected
//
public
constructor Create(AServerName: string; ADBName: string; AUserName: string;
APassword: string); overload;
destructor Destroy; overload;
procedure ConnectDB(AState: Boolean);
end;
编译时出现如下警告:[Warning] uClasses.pas(44): Method 'Destroy' hides virtual method of base type 'TObject'
[Warning] uClasses.pas(153): Method 'ConnectDB' hides virtual method of base type 'TDB'不知是什么问题
destructor Destroy; override;
APassword: string); overload;
这个不能overload
abstract 不要
因为abstract一定得要吧?
因为abstract表示,父类中不实现此方法,不加,父类中可以实现的,和作者的意图相反啊!
destructor Destroy; override;
APassword: string); override;
destructor Destroy; override;
procedure ConnectDB(AState: Boolean);override
abstract不光是实现否的问题,有它就不能创建此类的实例,只能将自类的实例附之
确实是我没将 overload 和 override的区别
我将overload改成override后就没有出现警告了。
可是还是出了另一个问题:
TEncrypt = Class(TObject)
private
FOnMessage: TMessageEvent;
protected
//
public
destructor Destroy;override;
Procedure EnCode(SrcStream:TStream; Var DestStream:TStream);virtual;abstract;
Procedure DeCode(SrcAStream:TStream; Var DestStream:TStream);virtual;abstract;
Procedure Messaged(sMessage: string);
property OnMessage: TMessageEvent read FOnMessage;
end;TEncrypt14 = Class(TEncrypt)
private
//
protected
//
public
constructor Create; overload;
destructor Destroy; override;
Procedure EnCode(SrcStream:TStream; Var DestStream:TStream); override;
Procedure DeCode(SrcAStream:TStream; Var DestStream:TStream);override;
end;[Error] uClasses.pas(62): Unsatisfied forward or external declaration: 'TEncrypt.Destroy'
去掉overrload