overview
[1] Don’t panic! All will become clear in time;
[2] You don’t have to know every detail of C++ to write good programs;
[3] Focus on programming techniques, not on language features;
there are six parts of this book:
1.Introduction ch1-3
overview
2.Part1 ch4-9
a tutorial introduction to C++’s built-in types and the
basic facilities for constructing programs out of them.
3.Part2 ch10-15
a tutorial introduction to object-oriented and generic programming
using C++.
4.Part3 ch16-22
present the C++ standard library.
5.Part4 ch23-25
discuss design and software development issues
6.Appendices
A-E provide language technical details
Advice:
[1] When you program, you create a concrete representation of the ideas in your solution to some
problem. Let the structure of the program reflect those ideas as directly as possible:
[a] If you can think of ‘‘it’’ as a separate idea, make it a class.
[b] If you can think of ‘‘it’’ as a separate entity, make it an object of some class.
[c] If two classes have a common interface, make that interface an abstract class.
[d] If the implementations of two classes have something significant in common, make that
commonality a base class.
[e] If a class is a container of objects, make it a template.
[f] If a function implements an algorithm for a container, make it a template function implementing
the algorithm for a family of containers.
[g] If a set of classes, templates, etc., are logically related, place them in a common namespace.
[2] When you define either a class that does not implement either a mathematical entity like a
matrix or a complex number or a low-level type such as a linked list:
[a] Don’t use global data (use members).
[b] Don’t use global functions.
[c] Don’t use public data members.
[d] Don’t use friends, except to avoid [a] or [c].
[e] Don’t put a ‘‘type field’’ in a class; use virtual functions.
[f] Don’t use inline functions, except as a significant optimization.
最新文章
- 电子商务网站SQL注入项目实战一例
- jQuery uploadify 文件上传
- Clone Graph leetcode java(DFS and BFS 基础)
- java多线程执行问题
- [转]Android逆向之动态调试总结
- CSS3发光字动画
- JqueryMobile动态生成listView并实现刷新的两种方法
- HDU2023-求平均成绩
- EasyUI - Progressbar 进度条控件
- c#中,DataTable 过滤重复行
- 【Alpha】Daily Scrum Meeting——Day5
- MySQL查询(进阶)(每个标点都是重点)
- C语言malloc函数为一维,二维,三维数组分配空间
- day11.1函数进阶 列表集合 字典中的函数变量,函数作为形参
- HTTP Health Checks
- servlet运行“/*”引起的java.lang.StackOverflowError
- VBA找相似体积的单元格值
- 林兴爆料小程序很快可以支持各个 App 直接打开小程序
- PHP单点登陆
- ios开发之--tableview单选/多选实现(非tableview的editing状态)及默认选中