第12章 C++面向对象程序设计方法概述
封装、继承、组合、虚函数、抽象基类、动态绑定和多态性是面向对象程序设计中的重要概念。
12.1 漫谈面向对象
12.2 对象的概念
12.3 信息隐藏与类的封装
C++对C的最根本的改变就是把函数放进了结构之中,从而产生了C++类。学习C++类最忌讳的是把类当成火锅,什么东西都往里面扔。
12.4 类的继承特性(is-a-kind-of)
对于C++程序而言,设计孤立的类是比较容易的,比较困难的是正确设计基类及其派生类。
继承很有用,也很容易使用,但是一定要防止滥用!
12.5 类的组合特性(is-a-part-of)
程序设计的一个原则:优先使用组合(委托)而不是继承。
12.6 动态特性
在绝大多数情况下,程序的功能是在编译的时候确定下来的,我们称之为静态特性。反之,如果程序的功能是在运行时刻才确定下来的,则称之为动态特性。
抽象基类: 具有纯虚函数的类。
virtual void Draw(void) = 0; // 纯虚函数
关于纯虚函数的解释:我们知道,函数名就是函数的地址,将一个函数初始化为0意味着函数的地址将为0,这就是在告诉编译器:不要为该函数编址,从而阻止了该类的实例化行为。
12.7 C++对象模型
构成对象本身的只有数据!任何成员函数都不隶属于任何一个对象,非静态成员函数与对象的关系就是绑定,绑定的中介就是this指针。
封装、继承、组合、虚函数、抽象基类、动态绑定和多态性是面向对象程序设计中的重要概念。
12.1 漫谈面向对象
12.2 对象的概念
12.3 信息隐藏与类的封装
C++对C的最根本的改变就是把函数放进了结构之中,从而产生了C++类。学习C++类最忌讳的是把类当成火锅,什么东西都往里面扔。
12.4 类的继承特性(is-a-kind-of)
对于C++程序而言,设计孤立的类是比较容易的,比较困难的是正确设计基类及其派生类。
继承很有用,也很容易使用,但是一定要防止滥用!
12.5 类的组合特性(is-a-part-of)
程序设计的一个原则:优先使用组合(委托)而不是继承。
12.6 动态特性
在绝大多数情况下,程序的功能是在编译的时候确定下来的,我们称之为静态特性。反之,如果程序的功能是在运行时刻才确定下来的,则称之为动态特性。
抽象基类: 具有纯虚函数的类。
virtual void Draw(void) = 0; // 纯虚函数
关于纯虚函数的解释:我们知道,函数名就是函数的地址,将一个函数初始化为0意味着函数的地址将为0,这就是在告诉编译器:不要为该函数编址,从而阻止了该类的实例化行为。
12.7 C++对象模型
构成对象本身的只有数据!任何成员函数都不隶属于任何一个对象,非静态成员函数与对象的关系就是绑定,绑定的中介就是this指针。