博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
博览网C++学习第三周
阅读量:7114 次
发布时间:2019-06-28

本文共 566 字,大约阅读时间需要 1 分钟。

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

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

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

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

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

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

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

    调用私有虚函数也就是模板方法设计模式。我觉得明白原理即可,每个函数都

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

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

    一个对象族类。然而原生指针是不会自己做内存管理的,所以一堆的内存泄漏

    问题随之而来。解决之道是std::shared_ptr<>,所以在这里智能指针的使用时相当

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

5. 最后,我个人觉得如果用面向对象的设计,类族大部分应该是不可拷贝的,实在

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

转载于:https://www.cnblogs.com/y990441/p/7788202.html

你可能感兴趣的文章
Silverlight/Windows8/WPF/WP7/HTML5周学习导读(9月17日-9月23日)
查看>>
Tap-Ahead:让移动搜索更加便捷的解决之道
查看>>
Windows Server2016 Hyper-v Cluster部署
查看>>
juniper路由器配置
查看>>
jQuery一点一滴系列教程(第三点)
查看>>
ARP解决方法/工具 真假ARP防范区别方法 ARP终极解决方案
查看>>
系统数据权限的实现方案
查看>>
华为vlan划分,单臂路由以及静态路由
查看>>
UCD 2010百度工作坊
查看>>
ssh2免密码登录
查看>>
4_move_find_into_model
查看>>
MySQL · 捉虫动态 · UK 包含 NULL 值备库延迟分析
查看>>
windows server 2012 standard Evaluation 安装试用
查看>>
windows server 2008中配置TCP/IP
查看>>
网管必读:交换机技术简介及应用分析
查看>>
.NET多线程编程(9)——Thread类
查看>>
HP DL380G6上安装配置Vmware_ESXI4.1
查看>>
单IP无TMG拓扑Lync Server 2013:活动目录
查看>>
3.VMware vsphere 5.0新体验-安装VMware Center
查看>>
趣题: 一道面试题的解法
查看>>