摘要:
可以用Command模式、函数对象来代替函数指针,获得以下的好处: 1. 可以封装数据 2. 可以通过虚拟成员获得函数的多态性 3. 可以处理类层次结果,将Command与Prototype模式相结合,获得更多的便利。 阅读全文
posted @ 2017-02-27 23:04
blcblc
阅读(276)
评论(0)
推荐(0)
摘要:
异常安全的赋值 需要注意,复制赋值和复制构造,相兼容。 赋值时候,要带上自检查。 阅读全文
posted @ 2017-02-27 18:38
blcblc
阅读(234)
评论(0)
推荐(0)
摘要:
有时候会有指向类成员变量或者成员函数的指针,但是注意,这个指针并不是针对一个地址的指向,而更多的是一个偏移。 同时,支持将父类对象的成员 转为 子类对象的成员指针,如下: 反过来,是不行的。因为父类的对象中,不一定包含子类对象的结构。 注意前面的 Class::* 这样的操作符。赋值也是用 &Cla 阅读全文
posted @ 2017-02-27 18:36
blcblc
阅读(338)
评论(0)
推荐(0)
摘要:
今天在这里面看到了这个题目,据说还是Google面试题。 http://www.cnblogs.com/chio/archive/2007/10/23/934335.html 总的思想,是把一些在栈上或者堆上面创建对象,所必须的函数设为private使得编译报错。 比如: 只能在堆上创建,不能在栈上 阅读全文
posted @ 2017-02-27 17:48
blcblc
阅读(292)
评论(0)
推荐(0)
摘要:
再让我们看看<signal.h>中声明的signal函数void (*signal(int, void(*)(int)))(int)首先,用typedef简化,typedef void (*handler_type)(int)得,void (*signal(int, handler_type))(i 阅读全文
posted @ 2017-02-27 17:16
blcblc
阅读(498)
评论(0)
推荐(0)
摘要:
最后,总结一下关于虚函数的一些常见问题:1) 虚函数是动态绑定的,也就是说,使用虚函数的指针和引用能够正确找到实际类的对应函数,而不是执行定义类的函数。这是虚函数的基本功能,就不再解释了。 2) 构造函数不能是虚函数。而且,在构造函数中调用虚函数,实际执行的是父类的对应函数,因为自己还没有构造好, 阅读全文
posted @ 2017-02-27 17:01
blcblc
阅读(559)
评论(0)
推荐(0)
摘要:
mutable的使用场景: 可以在一个const的对象里面,解除对部分字段的const限制。也可以用在const成员函数里面。 对于const与否,一般会调用不同版本的函数: 而对于二元操作符,如果用成员函数定义,那么加上const修饰符,就可以使得左侧也是const。 阅读全文
posted @ 2017-02-27 15:45
blcblc
阅读(329)
评论(0)
推荐(0)
摘要:
阅读全文
posted @ 2017-02-27 12:17
blcblc
阅读(176)
评论(0)
推荐(0)
摘要:
阅读全文
posted @ 2017-02-27 11:36
blcblc
阅读(137)
评论(0)
推荐(0)
摘要:
注意,对于多维数组的情况。 阅读全文
posted @ 2017-02-27 00:45
blcblc
阅读(444)
评论(0)
推荐(0)

浙公网安备 33010602011771号