以下是引用myajax95在2006-7-25 11:16:11的发言:
回头会写详细的一篇文章。另外讨论得那么热闹怎么没人提 static_cast dynamic_cast 呀,通过C++提供的指针类型转换可以避免无数void* int*之类的类型错误。如果说这个问题,可能还得提起Run time library。就是对于一个class 的指针,用IsKindOf之类的检查一下。内容比较多,我争取总结的全面一点。
smart pointer最常见到的地方是在COM interface里对于COM server指针的管理。用处就是实现像JAVA,C#那样的garbage collection了。
平时写程序时用这个smart pointer也是很保险的编程风格,可惜我对这块东西没有那么熟练,所以练习的也不多。争取写完这个总结之后能够用于日常的程序里。
dynamic_cast 还请你详细讨论,我只粗劣的知道在多态中使用,可以判断"向下"转换是否成功,如果成功就转换成派生类指针,不成功就null