|
|
第5行: |
第5行: |
| | | |
| 编程是用于描述客观事物及其问题的一种工具。编程这种描述的解决过程可以在机器上运行完成。 | | 编程是用于描述客观事物及其问题的一种工具。编程这种描述的解决过程可以在机器上运行完成。 |
− |
| |
− | ===C++ 面向对象编程===
| |
− |
| |
− | C++之父:[https://en.wikipedia.org/wiki/Bjarne_Stroustrup Bjarne Stroustrup]
| |
− |
| |
− | "No programming language is perfect. Fortunately, a programming language does not have to be perfect to be a good tool for building great systems"
| |
− |
| |
− | ====基本概念====
| |
− |
| |
− | 对象(object):是一个自包含的实体,用一组可识别的特性和行为来标识。C++以数据成员(data member)表达属性,以成员函数(member function)表达行为。
| |
− |
| |
− | 类(class):是具有相同属性和功能的对象的抽象集合。
| |
− |
| |
− | 对象实例(instance):是真实的对象。实例化就是创建对象的过程,使用new关键字来创建。
| |
− |
| |
− | 构造方法(constructor):又叫构造函数,其实就是对类进行初始化。在new时候调用。
| |
− |
| |
− | 方法重载(overloading):提供了创建同名的多个方法的能力,但这些方法需要使用不同的参数类型。
| |
− |
| |
− | public:表示它所修饰的类成员可以允许其他任何类来访问,即是公有的。
| |
− |
| |
− | private:表示只允许同一个类的成员访问,其它类包括它的子类都不能访问,即是私有的。
| |
− |
| |
− | 封装(Encapsulation):每个对象都包含它能进行操作所需要的所有信息,这个特性叫封装,因此对象不必依赖其他对象来完成自己的操作。
| |
− |
| |
− | 对象的继承(inheritance):代表了一种“is-a”的关系。继承者可以理解为是被继承者的特殊化,不仅有被继承者的特性,还有自己独有的个性。继承定义了类如何相互关联,共享特性。
| |
− |
| |
− | protected:表示继承时,子类可以完全访问基类。用protected修饰的类成员,对子类公开,但不对其他类公开。
| |
− |
| |
− | virtual:为了让子类的实例完全代替父类的类成员,父类必须把该成员申明为虚拟的。子类使用override关键字,将父类实现替换为它自己的实现,这就是方法重写(override)。
| |
− |
| |
− | 多态(polymorphism):表示不同的对象可以执行相同的动作,但是要通过他们自己的实现代码来执行。
| |
− |
| |
− | ====Generic Programming 泛型编程====
| |
− |
| |
− | 模板(Template)指C++编程语言中的函数模板(function template)与类别模板(class template)。
| |
− |
| |
− | template<class T>
| |
− |
| |
− | 容器(Container):<vector>, <list>, <bitset>, <set>, <map>, <stack>, <queue>, <dequeue>.
| |
− |
| |
− | 迭代器(iterator):<iterator>
| |
− |
| |
− | 算法(Algorithm):<algorithm>, <cstdlib>
| |
− |
| |
− |
| |
− | ===C++ 标准库===
| |
− | C语言的标准库 <X.h>,定义在std名字空间中<X>.
| |
− |
| |
− | 标准模版库(Standard Template Library, STL)
| |
− |
| |
− |
| |
− | ===Boost C++ 库(Libraries)===
| |
− |
| |
− | Boost是一组扩充C++功能的经过同行评审(Peer-reviewed)且开放源代码程序库。许多Boost的开发人员是来自C++标准委员会,而部分的Boost库成为C++的TR1标准之一。
| |
| | | |
| ==敏捷编程 Agile Programming== | | ==敏捷编程 Agile Programming== |