1.philosohpy of the design of C++
.close to the machine
.close to the problem to be solved
2.How does one write good programs in C++?
.Know what you want to say.
.Practice.Imitate good writing.
3.Programming Paradigms
Procedural Programming
.Decide which procedures you want;
use the best algorithms you can find.
Modular Programming (data-hiding principle)
.Decide which modules you want;
partition the program so that data is hidden within modules.
Data Abstraction
.Decide which types you want;
.provide a full set of operations for each type.
Object Oriented Programming
.Decide which classes you want;
.provide a full set of operations for each class;
.make commonality explicitly by using inheritance.
Generic Programming
.Decide which algorithms you want;
.parameterize them so that they work for a variety of suitable types and data structures.
4.vtbl:virtual function table