摘要: 今天有对数组有了新的认识。代码如下:int i = 1;// (1)int* p = &i; cout<<p<<endl;cout<<&p<<endl;// (2)int arr[2] = {0};cout<<arr<<endl;cout<<&arr<<endl;乍一看,两部分的原理一样。都是输出指针和取指针的地址。但是只要细心测试一下,就发现不同了。(1)中的地址是不同的,但是(2)中的地址输出是一样的。我开始也比较惊讶,但是静下心了分析一番之后。发现数组名是特殊的指针,即 阅读全文
posted @ 2012-02-21 16:51 xiaopingge 阅读(305) 评论(0) 推荐(0) 编辑
摘要: IMPLEMENT_DYNAMIC是实现“运行时类型识别”宏,与之相对应的是DECLARE_DYNAMIC(声明“运行时类型识别”宏)。也就是说你在.CPP文件中如果看见有IMPLEMENT_DYNAMIC,则在.H文件中必定有DECLARE_DYNAMIC的声明。DECLARE_DYNAMIC/DEClARE_DYNAMIC是为了确定运行时对象属于哪一个类而定义的宏。 DEClARE_DYNCREATE/IMPLEMENT_DYNCREATE是为了“动态创建"类的实例而定义的宏。new可以用来创建对象,但不是动态的。比如说,你要在程序中实现根据用户输入的类名来创建类的实例,下面的做 阅读全文
posted @ 2012-02-21 16:33 xiaopingge 阅读(1038) 评论(0) 推荐(0) 编辑