有啥c++项目可以用来了解oop思想呢
这个太多了,去看看android源码就可以知道了。
■网友
如果追求简单,可以写一点需要面向对象核心特性的小程序。比如:
离散事件模拟。面向对象编程的起源是 1960 年代的 Simula 语言,它就是专门用来做离散事件模拟的。比方说写个银行窗口的排队模拟,有存钱的,有取钱的,有转账的,等等,每种事件一个类,它们都由公共事件基类所派生出来。这种程序几十行就能写一个,但至少能让你熟悉继承、虚函数、运行时多态这样最基本的面向对象概念。
当然了,也可以从你以前写过的程序出发进行扩展。比如说对你的小计算器做一点扩展:让它能处理机器浮点数、长整数、有理数(分数)、多项式的混合运算。能把这几种数据类型用类定义为抽象数据类型,并提取公共操作实现为基类吗?中缀表达式求值的算法是各种数据类型通用的吗?添加新的运算类型方便吗?数据类型转换的规则是什么?主动用类型和对象的方式考虑计算器的设计。这里面可以挖出不少面向对象设计上的决策和实现问题。
也可以从面向对象编程主要的实用场景去练习。比如:
图形用户界面(GUI)。现在主流的 GUI 程序基本都是用面向对象编程的方式编写的。面向对象编程被实践证实特别适用于 GUI 的描述。C++ 的话,典型的是 Qt 库,官方文档清晰,例子清楚,代码好写。
写这种更大的项目,面向对象技术要解决什么问题,解决了什么问题,典型的写法是什么,会感受得更清楚。整个庞大的界面库就是由面向对象技术组织起来的:所有 Qt 对象都是 QObject 派生出来的;所有窗口控件都是 QWidget 的派生类;控制滑块(QSlider)、窗口边的滚动条(QScrollBar)、圆形的拨盘(QDial)其实都是一种东西。同时,你自己的程序也是通过继承复用这些已有的类型写出来的。
【有啥c++项目可以用来了解oop思想呢】 在这中间不要陷入颜色、位置之类琐碎的细节,也不要停止思考。GUI 程序核心的事件队列处理,其实和前面说的银行窗口排队那种离散事件模拟并无区别。GUI 程序如何把点击菜单项和一个具体命令连接起来,Qt 的 connect 的本质是什么?MVC 的设计是要解决什么问题,又是如何在程序结构中体现的?找找库和你自己的程序中有没有用到什么设计模式。
■网友
多写代码,尽量少看用很多设计模式的代码。学oop思想,还不如多看第一推动丛书的物理科普,直接学习上帝创造世界的思想
■网友
我不建议 直接看cpp 有本 c语言接口与实现创建可重用的设计,不错 用c写的 但是思想是oop的,读完本书后 我一直用c封装一些自己的库函数,然后cpp作为上层语言做业务逻辑
推荐阅读
- 滁宁城际铁路一期项目汊河新城特大桥箱梁架设完成
- 盐都区|15个高质量项目签约落户盐城高新区
- |盐城在建省级农业农村重大项目已完成投资65.9亿元
- 南通大学|创业项目聚焦二孩家庭,南通大学喜获国赛金奖
- 农民工工资|海门三项目被省住建厅列入拖欠农民工工资预警名单
- 有啥方法,网站,项目可以自己练习计算广告学
- |第七届淮海科学技术奖获奖名单揭晓121个创新项目、10名科技人才获奖
- 上市公司孵化新项目成熟之后,拆分出去成立新公司,这样不会损害其他股东的利益吗
- 风电场|国内首个 江苏如东H14海上风电场项目主体全面完工
- 入选|
