构造和析构的基础知识

前言

站在用户的角度思考问题,与客户深入沟通,找到桓仁网站设计与桓仁网站推广的解决方案,凭借多年的经验,让设计与互联网技术结合,创造个性化、用户体验好的作品,建站类型包括:成都做网站、网站建设、企业官网、英文网站、手机端网站、网站推广、空间域名、网络空间、企业邮箱。业务覆盖桓仁地区。

  创建一个对象时,常常需要做某些初始化的工作,例如对数据成员赋值,注意,类的数据成员是不能在声明类时初始化的

  为了解决这个问题,C++编译器提供了 构造函数 来处理对象的初始化。构造函数是一种特殊的成员函数,与其他成员函数不同,不需要用户来调用它,而是在建立对象时自动执行。


 构造和析构的基础知识

2、构造函数的分类(三个)

 (1)无参构造函数   

      Test()
      {
               ;
      }

 (2)带参数构造函数   

      Test(int a,int b)
      {
                ;
      }

 (3)赋值构造函数

      Test(const Test &obj)
      {
                ;
      }

构造函数的调用

#include <iostream>
using namespace std;

class Test
{
public:
    Test()          //无参构造函数
    {
        m_a = 0;
        m_b = 0;
        cout << "无参构造函数" << endl;
    }
    
    Test(int a)      //一个参数的有参构造函数
    {
        m_a = a;
        m_b = b;
    }
    
    Test(int a,int b)  //有参构造函数       //调用有参构造函数有三种方法
    {
        m_a = a;
        m_b = b;
        cout << "有参构造函数" << endl;
    }
    
    Test(const Test& obj)   //赋值构造函数(copy构造函数)
    {
        cout << "我也是构造函数" << endl;
    }
public:
    void print()
    {
        cout << "普通成员函数" << endl;
    }
protected:    
private:
    int m_a;
    int m_b;
}

void main()
{
    Test t1;   //无参构造函数的调用  (对象后什么都不写)
    
    //有参函数的第一种调用方法  括号法
    
    Test t1(1,2);  //调用两个参数的构造函数   
    t1.ptint();
    
    //有参函数的第二种调用方法  =号法   (=操作不再是C语言中的功能。C++对= 进行了功能性增强)
    
    Test t2 = (3,4);  //调用一个参数的构造函数  因为()号里是逗号表达式,结果为 4;即最后一个数    
    t2.print();
    
    Test t3 = 4;
    t2.print();      //跟 Test t2 = (3,4) 效果是一样的
    
    //有参函数的第三种调用方法  手动的调用构造函数
    Test t4 = Test(1,2);     //调用了有两个参数的构造函数
                             //直接调用构造函数,会产生匿名对象(涉及到匿名对象的去和留)
    
    cout << "hello" << endl;
}

本文名称:构造和析构的基础知识
本文路径:https://www.cdcxhl.com/article48/jsgeep.html

成都网站建设公司_创新互联,为您提供虚拟主机电子商务企业建站外贸建站软件开发品牌网站制作

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

小程序开发