dynamic_cast支持运行时识别指针或引用所指向的对象。从基类指针获得派生类行为最好的办法是通过虚函数。但是在某些情况下,无法使用虚函数,就需要手动显示转换。如果转换指针失败,则置0;如果转换引用失败,则抛出bad_cast异常。
1 if(Extend *ptr = dynamic_cast...
分类:
其他好文 时间:
2014-07-22 23:17:36
阅读次数:
383
实现 smart_ptr 智能指针会自动地管理内存(释放不需要的内存),而不需要程序员去操心。
它能避免迷途指针(dangling pointers),内存泄漏(memory leaks), 分配失败等情况的发生。智能指针需要为所有实例维护一个引用计数,
这样才能在恰当的时刻(引用计数为0时)...
分类:
编程语言 时间:
2014-05-04 11:56:03
阅读次数:
380
二维数组意义:int **Ptr 表示指向"一群"指向整数的指针的指针。int *Ptr[ 5
] 表示指向 5 个指向整数的指针的指针,或者说Ptr有5个指向"一群"整数的指针,Ptr是这5个指针构成的数组的地址int ( *Ptr )[ 5 ]
表示指向"一群"指向 5 个整数数组的指针的指针。...
分类:
编程语言 时间:
2014-05-04 10:55:26
阅读次数:
392
1.标志寄存器的第10位DF,方向标志位。在串处理指令中,控制每次操作后si,di的增减
DF=0,每次操作后,si、di增加
DF=1,每次操作后,si、di减小
我们可以用汇编语法描述movsb的功能如下:
mov es:[di],byte ptr ds:[si] ;8086不支持这样的指令,仅做描述之用
如果DF=0:inc si
inc di
如果DF=1:dec si...
分类:
移动开发 时间:
2014-05-04 00:03:04
阅读次数:
581
boost的智能指针给编程带来了极大的便利,不需要关心内存的释放,不要要调用delete,而且还可以定制delete的方法。其实boost的智能指针是可以当成scope_exit来用的,同样是退出时处理。但是凡事都是有利有弊,boost的shared_ptr如果在循环引用的时候会出现无法释放内存的情况,所谓循环引用就是A智能指针类里存放B的智能指针,B的智能指针类里存放A,将a、b的值互相设置。增...
分类:
其他好文 时间:
2014-05-03 21:06:19
阅读次数:
274
本次主题:指针与数组在进入主题前,我们先看一个例子:#includeint main(){
int a[5] = { 1, 2, 3, 4, 5 }; int *ptr = (int *) (&a + 1); printf("%d,%d\n",
*(a + 1), *(ptr - ...
分类:
其他好文 时间:
2014-05-01 08:40:11
阅读次数:
324
#include #include /* GDI+ startup token */ULONG_PTR
gdiplusStartupToken;/* Declare Windows procedure */LRESULT CALLBACK
WindowProcedure (HWND, UINT, W...
这篇文章主要来源于:codeguru网站的一篇文章:A TR1 tutorial:smart
pointer (详细介绍了C++的智能指针,尤其是shared_ptr)。众所周知,在 TR1
之前,C++标准库中的智能指针只有auto_ptr,但由于它的【排他所有权模式】(exclusive own...
分类:
编程语言 时间:
2014-04-30 18:01:06
阅读次数:
478
ahk 预加载声音:path = "C:\Windows\Media\Windows
Recycle.wav"command := "open " path " alias
AHK_PlayMe"DllCall("Winmm\mciSendString","str",command,"ptr",0,...
分类:
其他好文 时间:
2014-04-29 19:18:50
阅读次数:
424
C语言或C++中,数组元素全为指针的数组称为指针数组一维指针数组的定义为:类型名*数组标识符[数组长度]eg:
int*ptr_array[10];以下内容来自百度百科链接http://baike.baidu.com/link?url=r6JRJbaleIw_69o-t8uO2vTF0r4oukf1...
分类:
编程语言 时间:
2014-04-28 01:02:26
阅读次数:
667