参考代码:
class function TModuleManager.AccessInstance(
Request: Integer): TModuleManager;
const FInstance: TModuleManager = nil;begin
case Request of
0: ;
1: if not Assigned(FInstance) then
begin
FInstance := CreateInstance;
end;
2: FInstance := nil;
else
raise Exception.CreateFmt('%dÊÇAccessInstanceÖзǷ¨µ÷ÓòÎÊý!', [Request]);
end;
Result := FInstance;
end;
问题: 既然const定义的常量是不可变的,但是上面定义的对象常量却是可变的,请问是不是违背了const的语法规则?
class function TModuleManager.AccessInstance(
Request: Integer): TModuleManager;
const FInstance: TModuleManager = nil;begin
case Request of
0: ;
1: if not Assigned(FInstance) then
begin
FInstance := CreateInstance;
end;
2: FInstance := nil;
else
raise Exception.CreateFmt('%dÊÇAccessInstanceÖзǷ¨µ÷ÓòÎÊý!', [Request]);
end;
Result := FInstance;
end;
问题: 既然const定义的常量是不可变的,但是上面定义的对象常量却是可变的,请问是不是违背了const的语法规则?
解决方案 »
- 如何限制DELPHI程序运行次数?
- 我想用Sendmessage给WebBrowser发消息,怎么实现?
- EnableMenuItem的用法?怎么改不了菜单相呢?
- 如何在Delphi如何操作EXCEL数据库?
- 使用DELPHI如何新建一个文件夹?
- 如何动态建立ACCESS的ODBC数据源 建了 一天了也不会 急 谢谢了 有代码吗????最好
- 用程序(不关机)重启IIS服务
- 我把一个流存入文件的时候,为什么有些时候出现文件写入磁盘错误和服务器不可用的错误!
- ●如何挂断modem的连接●
- 怎样发送消息来关闭.最大化.最小化以及激活另外一个程序的窗口?
- sendmessage时,怎样给构件发送一个ctrl + D 的组合的消息?
- 在线等!!delphi7控件Caption属性只显示英文,不显示中文!!!!急!!!
只是FInstance指向的对象的值不能变
并不影响FInstance可以指向不同的对象
这是指针嘛
TModuleManager是指向类的指针类型,CreateInstance;创建动态实例