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

    1. 构造函数和析构函数

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

     5. this指针和对象数组

  • 相关阅读:
    人生的意义:
    instancetype和id的区别,objective-c
    iOS多线程系统整理 swift
    系统整理 精讲 swift 泛型
    swift学习笔记7
    swift学习笔记6
    swift学习笔记5
    [iOS开发日记]简易计算器
    [ocUI日记]UIImage和UIImageview
    [ocUI日记]UIwindow和UIview
  • 原文地址:https://www.cnblogs.com/feng-ying/p/10064934.html
Copyright © 2011-2022 走看看