谭浩强-《C++面向对象》读书笔记3

第 8 章 类和对象

对象的两要素:属性(静态特征),行为(动态特征)。发送消息,使得属性实现某一行为。

C++中的对象有数据和函数组成。特点:封装和信息隐藏。类是对象的抽象,类是模板,不占内存,对象是类的实例,是类的具体表现形式,对象占内存。C++提供了继承机制,重用是使用继承的策略。

多态性:由继承而产生的相关的不同类,其对象对同一消息会做出不同的响应。

C++是“带类的C”,类是所有面向对象语言的共同特征。类是C++的灵魂。C++支持面向过程也支持面向对象。

基于类和对象,再利用继承机制和多态性,就成面向对象程序设计了。

对象 = 算法 + 数据结构

程序 = 对象S + 消息

 

面向对象的软件开发流程:

1 面向对象分析,找出对象以及对象之间的联系

2. 面向对象设计,整体的设计,写出流程图

3. 面向对象编程,实现小模块

4. 面向对象测试

5. 面向对象维护

 

类的声明形式:

class 类名

{private :

       私有的数据和成员函数;

 public:

        公用的数据和成员函数;

}

 

定义对象最常用的方法是先声明类型,然后再定义对象。

用struct 和class 定义的类有区别,struct定义的默认是public(公用的),class默认是private(私有的)。

在类外定义成员函数

void Student::display()

其中Student 是类名,“::”是作用域运算符。类函数必须在类体中做原型声明,然后才可以在类外定义。也就是类体的位置要在函数定义之前,否则编译通不过。多于3行的函数,一般在类体内声明,在类外定义,这样可以减少类体的长度使类体清晰。

在类体中定义的函数如果满足inline条件就默认是这种情况,在类体外定义的则不默认。

每个对象所占的存储空间只是该对象的数据部分所占的存储空间,而不包括函数代码所占的空间。函数代码空间是所有对象所共享的,声明inline只是说在调用该函数时,将函数代码段复制到调用点,如果不指定inline则在调用该函数时就跳转到该函数入口点。

封装实现安全是把接口的实现过程编译成目标文件放进类库中,使得用户看不见源代码,就看不见接口是怎么实现的了,只给使用者留下接口。

你可能感兴趣的:(C/C++语言编程)