对象和类

来源:互联网 发布:如何删除网络驱动器 编辑:程序博客网 时间:2024/06/01 10:00

                                                                                  对象和类

                                oop重要特性:抽象、封装和数据隐藏、多态、继承、代码可重用

                    为了实现这些特性并将它们组合在一起,C++重要改进是提供了类

                    过程型编程:首先考虑遵循的步骤,然后考虑如何表示这些数据,(将数据保持在一个文件中然后从文件中读取data)

                     OOP编程:考虑如何表示数据和如何使用数据

 

 

 

                     抽象:公有接口,为了根据信息与用户之间的接口来表示它,抽象是至关重要的。将问题的本质特征抽象出来并根据特征来描述解决方案,抽象是通往用户定义类型的捷径。用户定义类型指的是实现抽象接口的类设计

                      封装:使用类对象的程序都可以直接访问共有部分,而只能通过公用部分来访问私有数据。

                       类设计尽可能将公有接口与实现细节分开。公用接口表示设计的抽象组件,将实现细节放在一起并将它们与抽象分开称为封装

                       数据隐藏也是一种封装(将数据放在累的私有部分中)。

                       将函数定义和类声明放在不同的文件中也称为封装。

                       数据隐藏不仅可以防止直接访问数据 ,还让开发者无需了解数据是如何被表示的,将实现细节从接口设计中分离出来如果以后找到了更好的实现数据表示或者实现成员函数细节的方法,可以对细节修改,而无需修改程序接口,这样程序维护起来更容易。

                        数据隐藏式OOP的主要目的之一:让数据为private,接口为public

                        

 

                        内联函数:其定义位于类声明中的函数自动成为内联函数

                        内联函数的特殊规则要求在每个使用它们的文件中都对其定义

                        最简单的方法是将内联定义放在定义类的头文件中

                        .h中

                         class  Stock{

                         

                            private:

                                      void set_tot();

 

 

 

 

                          };

                          inline void Stock::set_tot()

                          {

                          }

                       

                        内联函数:执行到函数调用指令时,程序将在函数调用后立即存储该指令的内存地址并将函数参数复制到堆栈,跳转到标记函数起点的内存单元,执行函数代码,然后跳回到地址被保存的指令处,来回跳跃并记录跳跃位置意味着以前使用函数时需要一定得开销。对于内联函数编译器将使用相应的函数代码来替换函数调用。对于内联代码程序无需从一个位置调到另一个位置再跳回来,如果在10个不同的地方调用同一个内联函数则改程序将包含该函数代码的10个副本。如果函数代码的执行时间很短,则内联函数就可以节省非内联函数调用的大部分时间,由于该过程相当快,因此尽管省略了大部分的时间但节省的时间绝对值并不大除非该内联函数经常被调用。

                         要使用内联函数的特性必须有在函数声明或者函数定义前加关键字inline

                          内联是通过函数参数实现的而宏是通过文本替换实现的。

                      

                     

0 0
原创粉丝点击