C++ 面向对象

来源:互联网 发布:网络利大于弊的辩论词 编辑:程序博客网 时间:2024/06/10 12:17

一、基本特征

       面向对象的四个基本特征:(1)抽象;(2)封装和数据隐藏;(3)继承;(4)多态

 

二、访问控制

(1)、private:类的私有成员只能被类的成员函数、友元函数、友元类访问,类外无法访问他们
(2)、protected:类的受保护成员能被类的成员函数、友元函数、友元类和派生类成员函数访问
(3)、public:类的公有成员可以被类的成员函数、友元函数、友元类所有能访问到类的对象的外部程序代码直接访问,这部分往往是一些操作(即成员函数)
(4)、类的公有成员是类的对外接口
 
三、构造函数
(1)、功能:为对象分配空间;对数据成员赋初值;请求其他资源
(2)、如何声明构造函数:
        –函数名和类名完全相同
        –不能定义构造函数的类型(返回类型),也不能使用void
        –构造函数应声明为公有函数,但它不能像其他成员函数那样被显式地调用
        –构造函数可以有任意类型和任意个数的参数,一个类可以有多个构造函数(重载)
(3)、创建类的对象时,自动调用类的构造函数
(4)、创建一个对象时只调用一个构造函数(根据参数列表)且只在创建时调用一次
(5)、在一个类需要接受不同的初始化值时,就需要编写多个构造函数,他们之间构成重载关系
 
四、构造函数种类
(1)、普通构造函数:有两个或两个以上参数的构造函数
(2)、默认构造函数
(3)、复制(拷贝)构造函数
(4)、类型转换构造函数
 
五、默认构造函数
(1)、没有参数或者所有的参数都有默认值的构造函数成为默认构造函数。
(2)、如果类中没有声明构造函数,编译器将自动产生一个公共的默认无参数构造函数;如果存在一个构造函数声明,那么编译器不会产生一个默认的构造函数
(3)、没有指明初始化对象时,便按默认构造函数来初始化该对象。
(4)、一个类中只能有一个默认构造函数(如果一个构造函数的所有参数均有默认值,这时再定义无参数的默认构造函数无意义,会产生调用时二义性
(5)、可以为类的成员函数指定参数的默认值,包括构造函数在内。
(6)、要把默认参数值放在函数声明中,而不应放在函数定义中
(7)、如果一个构造函数的所有参数均有默认值,这时再定义无参数的默认构造函数无意义,将产生调用时二义性
 
六、拷贝构造函数
(1)、功能:使用一个已经存在的对象来初始化一个新的本类的对象
(2)、声明:只有一个参数并且参数为该类对象的引用

       class类名{

            public:
          
类名(类名 &对象名);

      };

(3)、如果类中没有说明复制构造函数,则系统自动生成一个缺省复制构造函数,作为该类的公有成员
(4)、浅复制和深复制
       –复制:将对象数据成员的值进行简单的复制(最好利用系统自动生成的复制构造函数,已完成浅复制
       –深复制:不仅将对象数据成员的值进行复制,而且对指针型数据成员生成新空间,然后复制对应的值
 
七、析构函数
(1)、动态创建作用:撤销对象前做清理工作,一般是释放对象在生存期间动态申请的空间
(2)、当对象超出其定义范围时(即释放该对象时),编译器自动调用析构函数。
       –对象被定义在函数体内,则当这个函数结束时,该对象的析构函数被自动调用。
       –对象是使用new运算符在使用delete运算符释放它时,delete将会自动调用析构函数。
 
 
 
 
 
 
 
 
 
 

 

0 0
原创粉丝点击