c++封装

版权声明:原创文章,转载请注明出处: https://blog.csdn.net/hi_baymax/article/details/82830149
  1. private:只读属性,不可被外界修改

         public:可被外界修改读取

     2. 对象的实例化

         从栈中实例化:class TV{}    TV tv或是TV tv[20]

         从堆中实例化:class TV{}    TV *p=new TV()或是TV *q=new TV[20]

         需要注意的事从堆中实例化后需要通过delete p 或是delete []q释放内存

     3. 对象成员访问方式

         从栈中实例化:TV tv;tv.type=0;tv.changevol(); 

                                  TV tv[20];tv[1].type=0;tv[1]changevol(); 

         从堆中实例化:TV *p=new TV();p->type=0; 

                                  TV*q=new TV[20];p[1].type=0; 

     4. 构造函数

        1.构造函数的规则及特点:

          a.构造函数在对象实例化时被自动调用且仅调用一次;

          b.构造函数与类同名;

          c.构造函数没有返回值,不写数据类型;

         d.构造函数可以有多个重载形式;

         e.实例化对象时仅用到一个构造函数;

         f.当用户没有定义构造函数时,编译器自动生成一个构造函数,该函数没有做任何事;

     2.构造函数写法:

      无参构造函数:类名(){。。。。。。}

     有参构造函数:类名(形参){。。。。。。}

    3.拷贝构造函数:写法:类名(const类名&变量名),当通过同类型的对象实例化另外的对象时,自动调用拷贝构造函数。

   4.初始化列表:初始化列表可同时初始化多个数据成员,且只能用于构造函数,用法为 类名():数据成员(值),数据成员(值){},其特殊作用在于private中的const类型成员只能通过该方式进行初始化。 

    5.析构函数

使用方法:~类名(){。。。。。。}

用处:函数执行完后自动释放资源

特点:1.如果没有自定义的析构函数则系统自动生成

          2.析构函数在对象销毁时自动调用 3.析构函数没有返回值、没有参数也不能重载 

    6.类外定义

   即成员函数在类中声明,在类外定义,用法为 数据类型 类名::函数名{},包括同文件定义与分文件定义,分文件定义即为在.h文件中定义类并声明函数,再在.cpp文件中定义成员函数,定义时.cpp文件需包含头文件#include"类名.h",最后用另一个.cpp文件进行编译,同样包含头文件#include"类名.h"。

     对象的生命历程:

申请内存->初始化列表->构造函数->参与运算->析构函数->释放内存

猜你喜欢

转载自blog.csdn.net/hi_baymax/article/details/82830149