zoukankan      html  css  js  c++  java
  • C++(构造函数的分类和调用)

    构造函数的分类和调用

    • 两种分类方式
      1.按参数分为:有参构造和无参构造
      2.按类型分为:普通构造和拷贝构造

    • 三种调用方式
      1.括号法
      2.显示法
      3.隐式转换法

    示例:

    //1、构造函数分类
    // 按照参数分类分为 有参和无参构造   无参又称为默认构造函数
    // 按照类型分类分为 普通构造和拷贝构造
    
    #include <iostream>
    using namespace std;
    
    class Person
    {
    public:
          //无参(默认)构造函数
          Person()
          {
                cout<<"无参构造函数!"<<endl;
          }
    
          //有参构造函数
          Person(int a)
          {
                age=a;
                cout<<"有参构造函数!"<<endl;
          }
    
          //拷贝构造函数
          Person(const Person &p)
          {
                age=p.age;
                cout<<"拷贝构造函数"<<endl;
          }
    
          //析构函数
          ~Person()
          {
                cout<<"析构函数"<<endl;
          }
    public:
          int age;
    };
    
    //2.构造函数调用
    //调用无参构造函数
    
    void test01()
    {
          Person p; //调用无参构造函数
    }
    
    //调用有参构造函数
    void test02()
    {
          //2.1 括号法,常用
          Person P1(10); 
          //注意1:调用无参构造函数不能加括号,如果加了编译器认为这是一个函数声明
          //Person p2();
    
          //2.2 显示法
          Person p2=person(10);
          Person p3=Person(p2);
          //Person(10) 单独写就是匿名对象 当前行结束之后,马上析构
          
          //2.3隐式转换法
          Person p4=10; //Person p4=Person(10);
          Person p5=p4; //Person p5=Person(p4);
    
          //注意2:不能利用拷贝构造函数 初始化匿名对象 编译器认为是对象声明
          //Person p5(p4);
    }
    
    int main(void)
    {
          test01();
          //test02();
    
          system("pause");
    
          return 0;
    }
    
    
  • 相关阅读:
    第八章 路由器交换机及其操作系统的介绍
    k-Tree DP计数
    Drop Voicing 最长升序
    高精度
    1196D2
    C
    POJ 3974 马拉车
    2020.8.1第二十六天
    2020.7.31第二十五天
    每日日报
  • 原文地址:https://www.cnblogs.com/xuelanga000/p/13605239.html
Copyright © 2011-2022 走看看