博览网C++学习第三周

本周学习真正的面向对象程序开发,编程

主要就是编写几个有关系(is-a)的类,而后编程的时候针对基类的指针和引用编程。设计模式

其实,C++在这里(指面向对象编程)有一些惯用法:函数

1. 基类析构函数必为虚函数学习

2. 基类应该要有虚函数(除了虚析函数外的虚函数),不然设计是有问题的。设计

3. C++中有一个派别认为虚函数(除了虚析函数外的虚函数 ) 都应该是private的,指针

    这种思想本质上是将本来public的虚函数都“包裹”了一层非虚函数,非虚函数对象

    调用私有虚函数也就是模板方法设计模式。我以为明白原理便可,每一个函数都内存

    这样设计从开发效率上说过低了。开发

4. 其实C++搞面向对象的的最大短板就在于只能用指针(引用其实也同样)表示内存管理

    一个对象族类。然而原生指针是不会本身作内存管理的,因此一堆的内存泄漏

    问题随之而来。解决之道是std::shared_ptr<>,因此在这里智能指针的使用时至关

    重要的,设计模式中C++也不该该直接用原生指针,也应该用std::shared_ptr<>。

5. 最后,我我的以为若是用面向对象的设计,类族大部分应该是不可拷贝的,实在

    要拷贝也应该搞个“虚拷贝函数” virtual Base* copy();

相关文章
相关标签/搜索