2010.6.10

1、关于指针判断为空的问题

在函数中定义一个指针变量的时候,如果没有初始化,例如

CBase * cBase;

系统会自动分配一个地址,如下

在VC Debug版本里,栈中分配的值都会先用0xCCCCCCCC来处理一下,所以大家在Debug模式下调试程序发现在引用0xCCCCCCCC这样的值,就说明在试图使用一个没有初始化的值。

这时候,如果接下来要判断cBase是否为空,如:if(cBase){...},是没有作用的。

所以,必须

CBase * cBase=null;

2、多态的特性

今天就遇到了一个问题,必须用多态解决。

有很多不同类型的设备,每个设备是一个类,所有设备在一个Tree中显示。当用户选择一个设备时,需要显示该设备的特性信息。

关键是你不知道到底用户选择的是哪个设备,所以也不知道到底调用哪个类的显示函数。

所以就为所有设备定义一个基类。各个设备子类,重载基类的显示函数。

你可能感兴趣的:(2010.6.10)