![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C++ 设计模式
xzh_blue
这个作者很懒,什么都没留下…
展开
-
c++ 不破坏类封装的回调函数构思
众所周知,C++的类成员函数不能像普通函数那样用于回调,因为每个成员函数都需要有一个对象实例去调用它。 通常情况下,要实现成员函数作为回调函数,一种常用的方法就是把该成员函数设计为静态成员函数,但这样做有一个缺点,就是会破坏类的结构性,因为静态成员函数只能访问该类的静态成员变量和静态成员函数,不能访问非静态的,要解决这个问题,需要把对象实例的指针或引用做为参数传给它。转载 2015-08-23 10:00:49 · 1443 阅读 · 0 评论 -
c++ 代理类与句柄类实现思想
指针是 C 与其他语言区别的重要特征之一,在 C++ 中,指针也被广泛运用,我们通过指针实现多态。然而,众所周知,指针的使用必须小心,否则很容易造成内存泄漏 Memory Leak。当我们有几个指针指向同一个对象时有其应该注意,关于何时释放这个对象: (1) 如果释放的太早,那么其它的指针仍然指向这片内存,如果再使用它会造成未定义行为。 (2) 如果一直不释放可能会丢失最后一个指向这个对象的指转载 2015-09-18 11:20:18 · 506 阅读 · 0 评论 -
向上转型和向下转型,动态转换、和静态转换详解
子类转换为父类:向上转型,使用dynamic_cast(expression),这种转换相对来说比较安全不会有数据的丢失; 父类转换为子类:向下转型,可以使用强制转换,这种转换时不安全的,会导致数据的丢失,原因是父类的指针或者引用的内存中可能不包含子类的成员的内存。 动态转换和静态转换,dynamic_cast(expression),static_cast(expression),表示的是将...转载 2018-06-08 14:16:06 · 1205 阅读 · 0 评论