zoukankan      html  css  js  c++  java
  • 构造函数与析构函数

    构造函数:

    作用:初始化类中的数据成员

    特点:

    1、在对象创建时,由系统自动调用;

    2、构造函数名与类名相同;

    3、不能指定返回类型

    4、允许为内联,重载,带默认参数值得函数

    5、如果类中未声明,系统自动产生一个默认形式的构造函数;

    #include<iostream>
    using namespace std;
    class A
    {
    private:
        int a;
    public:
        A();
        A(int k);
        void display();
        
    };
    void A::display()
    {
    cout<<"a = "<<a<<"
    ";
    
    }
    A::A()
    {
    a = 3;
    }
    A::A(int k)
    {
    a = k;
    }
    int main()
    {
    A a1(4);
    a1.display();
    }

    拷贝构造函数:

    用类的一个对象去初始化类的另一个对象。

    #include<iostream>
    using namespace std;
    class Point
    {
        private:
            int x,y;
        public:
        Point(int xx = 0,int yy = 0)
        {
            x = xx;
            y = yy;
        }
        Point(const Point &p);
        int GetX(){return x;}
        int GetY(){return y;}
    
    };
    
    Point::Point(const Point &p)
    {
    x = p.x;
    x = p.y; 
    }
    int main()
    {
    Point A(1,2);
    Point B(A);
    cout<<B.GetX()<<endl;//用一个对象去初始化另一个对象
    
    }
    //////////////////////////////////////////////////////////
    void func(Point p)
    {
    cout<<p.GetY()<<endl;
    }
    int main()
    {
    Point A(1,2);
    func(A);//函数的形参为类对象,调用函数时实参赋值给形参
    }
    
    ////////////////////////////////////////////////////
    Point &fun2()
    {
      static Point A(1,2);
      return A;
    }
    int main()
    {
    Point B=fun2(); //当函数的返回值是类对象时,系统自动调用拷贝构造函数
    }

     析构函数:无返回值,无参数,没有重载。

    格式:~类名();

    作用:1、完成对象被删除前的一些清理工作

    2、对象生命周期结束时,系统自动调用它,然后再释放对象所属的空间。

    3、如果程序中未声明析构函数,编译器将自动产生一个默认的析构函数。

  • 相关阅读:
    POJ 1811 Prime Test 素性测试 分解素因子
    sysbench的安装与使用
    电脑中已有VS2005和VS2010安装.NET3.5失败的解决方案
    I.MX6 show battery states in commandLine
    RPi 2B Raspbian system install
    I.MX6 bq27441 driver porting
    I.MX6 隐藏电池图标
    I.MX6 Power off register hacking
    I.MX6 Goodix GT9xx touchscreen driver porting
    busybox filesystem httpd php-5.5.31 sqlite3 webserver
  • 原文地址:https://www.cnblogs.com/defen/p/5303632.html
Copyright © 2011-2022 走看看