一些C/C++的小问题
1. 回调函数与普通函数的区别
回调函数即函数指针来实现,可实现多态效果;信号处理函数一般也设置成回调,当事件发生,通过回调函数通知。
2. 函数返回局部变量时的一些优化:编译器的NRV优化,C++11的move
实际上归根结底是减少拷贝,构造和析构的次数,提高实现效率,只是实现方面的不同罢了。
3. 单例模式的缺点
copy自这里。
主要优点:
1、提供了对唯一实例的受控访问。
2、由于在系统内存中只存在一个对象,因此可以节约系统资源,对于一些需要频繁创建和销毁的对象单例模式无疑可以提高系统的性能。
3、允许可变数目的实例。
主要缺点:
1、由于单例模式中没有抽象层,因此单例类的扩展有很大的困难。
2、单例类的职责过重,在一定程度上违背了“单一职责原则”。
3、滥用单例将带来一些负面问题,如为了节省资源将数据库连接池对象设计为单例类,可能会导致共享连接池对象的程序过多而出现连接池溢出;如果实例化的对象长时间不被利用,系统会认为是垃圾而被回收,这将导致对象状态的丢失。