zoukankan      html  css  js  c++  java
  • c++ 类

    1. 构造函数和析构函数

    对象的初始化和清理是两个非常重要的安全问题,一个对象或者变量没有初始化时,对其使用的后果是未知的,同样使用完一个变量,没有及时清理,也会造成一定的安全问题,c++提供了这种问题完整的解决方案,即构造函数和析构函数,这两个函数也会被编译器自动调用,完成对象的初始化和对象清理工作。不论编程人员是否喜欢,对象的初始化和清理工作是编译器强制要求的事情,即使不提供初始化操作和清理操作,编译器也会增加默认的操作,只是这个默认初始化操作不会做任何事情,所以编写类应该顺便提供初始化函数。

    构造函数:主要用于在创建对象时为对象的成员属性赋值,构造函数由编译器自动调用,无须手动调用

    构造函数可以重载,无返回值,可以有参数

    析构函数:主要用于对象销毁前系统自动调用,执行一些清理工作。

    析构函数不可以重载,无返回值

    例:构造函数和析构函数的调用

    1. 构造函数的分类和调用

    a. 按照参数分类:无参构造函数(默认构造函数), 有参构造函数;

    b. 按照类型分类:普通构造函数,拷贝构造函数

    People类的描述如匿名对象下面代码所示

     2. 匿名对象:如果编译器发现对象是匿名的,这行代码结束以后就会释放资源

     3. 拷贝构造函数调用的时机

    a. 以值传递的方式给函数参数传递、

    b. 以值的方式返回局部对象

    c. 用已经创建好的对象来初始化新的对象

     4. 构造函数的调用规则:析构函数都会默认提供

    a. 用户提供有参的构造函数,编译器将不提供默认的构造函数,但是系统会提供默认的拷贝构造函数

    系统默认提供三个构造函数:

    默认构造函数:无参数,函数体为空

    拷贝构造函数:对类中非静态成员属性进行简单值拷贝

    析构函数:无参,函数体为空

    b. 当用户提供了拷贝构造函数,系统将不会提供默认和拷贝构造函数

     5. this指针和对象数组

  • 相关阅读:
    建设Kubernetes生产环境的16条建议
    深度长文:深入理解Ceph存储架构
    10个最危险的Linux命令,希望你牢记在心
    完美排查入侵者的 10 个方法和 1 个解决思路
    基于Docker&Kubernetes构建PaaS平台基础知识梳理
    Linux入门进阶
    (七)服务接口调用-OpenFeign
    (六)服务调用负载均衡-Ribbon
    (五)Eureka替换方案-Consul
    (四)Eureka替换方案-Zookeeper
  • 原文地址:https://www.cnblogs.com/feng-ying/p/10064934.html
Copyright © 2011-2022 走看看