学习笔记:面向对象程序设计技术(C++版)

学习笔记:面向对象程序设计技术(C++版)
======================================
CONTENTS
    类
        类的构成
        成员函数的定义
        对象的定义和使用
        构造函数和析构函数
        友员成员
        静态成员
        对象成员
        常数成员
    继承
        单继承
        多继承
    多态

======================================

    类的构成
        类主要由3部分组成:类名、数据成员(data member,也称为属性)、成员函数(member function,也称为服务)。
        其中数据成员和成员函数又分为3种,分别是:公有数据成员和成员函数、保护数据成员和成员函数、私有数据成员和成员函数。类的一般定义为:
        class className
        {
        public:
            data members;
            member functions;
        protected:
            data members;
            member functions;
        private:
            data members;
            member functions;
        };
    成员函数的定义
        把类的定义和实现放在不同的文件之中,这是一个软件开发人员的良好编程规范。
        原因如下:
            (1)类的实现围歼通常较大,将两者混在一起不便与阅读、管理和维护。

            (2)将类中的成员函数的实现放在其定义文件中与放在实现文件中,在编译时的含义是不一样的,若将成员函数的实现直接放在类的定义中,则类的成员函

                   数将作为 内联函数处理。显然将所有的成员函数都作为内联函数处理是不合适的。

            (3)对软件开发商来说,他们可以向用户提供一些程序模块,这些程序模块往往只向用户公开类的定义,即借口,而不公开程序的源代码,类的定义与实现

                   的分开管理可以很好地解决这个问题。

            (4)便于团体式的大型软件的开发。
    对象的定义和使用
        定义了对象后,就可以通过调用它的成员函数来实现具体功能。
        定义对象的方法:
            类名 对象名;
        调用成员函数的方法:
            对象名.方法名;
    构造函数和析构函数
        当一个对象被创建时,它是否能被正确地初始化,是我们要关心的。
        在编程中对变量和函数参数的初始化是为了使编程更为便捷、有效,同时可以减少程序出错的可能性。对对象的初始化同样是处于这些目的。
        对对象的初始化是通过构造函数完成的,主要对数据成员进行初始化,并对指针分配内存。
        析构函数也是一个特殊成员函数,它的主要功能是对类中动态分配的内存进行释放,它在对象消失时自动调用。
    友员成员
        在类的定义中,类的私有数据和保护数据不能随意被外部函数访问或修改,只能由类本身的函数访问修改。
        这导致了外部函数对类的私有数据不可访问性,为程序的重用性和二次开发带来极大不便。
        通过定义友员可以达到由外部函数直接访问类的私有数据的目的。
    静态成员

        一旦创建了一个对象,则这个对象将拥有类中所有的成员,如果某个数据对所有的对象都一样,则这个数据只要有一个拷贝,而不是每个对象都重复定义这个数

        据,形成内存浪费。简单说:一个数据拷贝,所有对象共享。这就可以通过定义静态数据成员来实现。

    对象成员

        通过对一个类的对象作为另一个类的成员,来丰富类的数据成员的表示途径,从而可以通过简单的类来定义复杂的类,实现代码的重用和共享,提高代码的可维

        护性。

    常数成员
        为了避免程序在执行过程中对不能修改的对象进行修改,可以将对象或函数声明为常数成员。

继承
    定义单继承的方法:
        class 派生类名:派生类型 基类名
        { };
    定义多继承的方法:
        class 派生类名:派生类型1 基类名1,派生类型2 基类名2,..,派生类型n 基类名n
        { };

多态

    对于同一条消息,不同的对象有不同的反应,这种不同的反应,表现为c++语言中的多态性。处理这个问题可以采用静态联编(通过函数重载和运算符重载实现)

    和动态联编(通过继承和虚函数实现)的方法调用相应的函数。

    多态性的应用可以使编程显得更为简捷、便利,它为程序的模块化设计提供了又一手段。
请使用浏览器的分享功能分享到微信等