• 构造函数与析构函数


    构造函数:

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

    特点:

    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、如果程序中未声明析构函数,编译器将自动产生一个默认的析构函数。

  • 相关阅读:
    python 基础类与对象函数实例
    python 练习之炮台
    python练习之银行模拟系统
    python练习之析构函数(进阶)
    python练习之__str__
    「JLOI2011」飞行路线
    「国家集训队」Crash的数字表格
    斐波那契公约数的相关证明
    「JSOI2010」满汉全席
    动态规划
  • 原文地址:https://www.cnblogs.com/defen/p/5303632.html
Copyright © 2020-2023  润新知