1.编写和设计单一类 Object Based(基于对象)
(1)class without pointer members
(2)class with pointer members
2.编写和设计复杂类之间 Object Oriented(面向对象)
(1)Inheritance 继承
(2)Composition 复合
(3)Delegation 委托
3.C++代码的头文件防卫式声明:防止头文件的重复引用 #ifndef TEST #define TEST #endif
4.inline内联函数:函数若在类体中定义自动变成内联函数,是否能够成为内联函数由编译器决定
5.构造函数ctor:函数与类名相同;无返回值;支持初始化列表;构造函数重载overloading
6.常量成员函数:函数后面加const关键字,能加的尽量全部都加
7.参数传递:值传递和引用传递(普通引用、常引用)
8.友元函数friend:能够获得private成员数据;相同类的各个对象互为友元
9.参数和返回值的引用传递: 首先考虑引用->考虑引用有没有问题-> 如果是局部的则无法返回引用
10.操作符重载 - 成员函数/非成员函数
(1)赋值、下标、调用、成员访问符,必须是成员函数
(2)符合赋值运算符应该是成员函数,但不是必须
(3)改变对象状态的运算符或者是给定类型密切相关的运算符应该是成员函数
(4)具有对称性的运算符可能是转换任一端的运算对象,通常为非成员函数
11.带指针的类必须关注三个特殊函数: 拷贝构造函数;拷贝赋值函数;析构函数
12.栈(stack):是存在于某个作用域的一块内存空间;堆(heap):是指由操作系统提供的一块全局内存空间,程序可动态分配从某个区域获得空间,必须自己释放该空间,否则就是内存泄漏
13.new:先分配内存再调用构造函数;delete:先调用析构函数再释放内存
14.static:脱离了对象,存储再静态区,只存在一份;静态成员数据&静态成员函数
15.类模板和函数模板
16.命名空间:using directive(using namespce std;) 或者 using declaration(using std::cout;)
17.Object Oriented Programming(OOP) 、 Object Oriented Design(OOD)
18.Composition
(1)has-a
(2)构造:由内到外
(3)析构:由外到内
19.Delegation
(1)Composition by reference
(2)构造:由内到外
(3)析构:由外到内
20.Inheritance
(1)继承方式: public、protected、private
(2)构造:由基类到派生类
(3)析构:由派生类到基类
(4)基类的析构函数必须是虚函数,否则会出现undefined behavior
21.Inheritance+Composition:构造和析构的执行顺序
22.Delegation+Inheritance:
(1)Observer
(2)Composite
(3)Prototype
原文:https://www.cnblogs.com/louz/p/14032891.html