c/c++语言开发共享构造函数与析构函数调用技巧

1、构造函数含义:成员函数名与包含它的类的类名一致,此成员函数称构造函数 class Test { public: Test() //无参数 构造函数 { } ~Test() //析构函数 { cout<<"我是析构函数,被调用了" <<endl; } protected: private: int …

1、构造函数含义:成员函数名与包含它的类的类名一致,此成员函数称构造函数

class test  {  public:      test()  //无参数 构造函数      {      }      ~test() //析构函数      {          cout<<"我是析构函数,被调用了" <<endl;      }  protected:  private:      int a ;  };

class test4  {  public:      test4()  //无参数构造函数      {          m_a = 0;          m_b = 0;      }      test4(int a)      {              m_a = a;          m_b = 0;      }      test4(int a, int b) //有参数构造函数   //3种方法      {          m_a = a;          m_b = b;      }      //赋值构造函数 (copy构造函数) //      test4(const test4& obj )      {          m_b = obj.m_b + 100;          m_a = obj.m_a + 100;      }  public:      void printt()      {        cout<<"普通成员函数"<<endl;         cout<<"m_a"<<m_a<<" m_b"<<m_b<<endl;      }  private:      int m_a;      int m_b;  };    //1  赋值构造函数 用1个对象去初始化另外一个对象    void main()  {          test4 t3;//什么都不写默认调用无参构造函数  不能写成 test t3();          test4 t1(1, 2);        test4 t0(8, 9);//调用两个参数构造函数  c++编译器自动的调用构造函数                     //下面这两个会调用含一个参数构造函数          test4 t7 = (3, 4, 5, 6, 7); // = c+对等号符 功能增强  c++编译器自动的调用构造函数                   test4 t8 = 5;       //这两个都会调用赋值构造函数         test4 t2 = t1; //用t1来初始化 t2 ,会调用赋值构造函数。t1明显就是obj,然后t2的成员变量就可以用t1的成员变量来控制,类似t2为数学上的的因变量,t1为自变量,t2=f(t1)          test2 t5 (t1);//调用匿名对象                 //下面这两个不会调用赋值构造函数       test4 t4 = test4(1,4);   // t4对象的初始化。如 参数构造函数里面有与t4名称相同的成员变量赋值操作,则后者(t4)与前者的相同变量值也会相等。       t0 = t1; //用t1 给 t0赋值操作(是共同的成员变量赋值) 。和初始化是两个不同的概念          t2.printt();//结果为 m_a=101   m_b=102  这是t2成员变量新的私有值         t4.printt();//结果为 m_a=1   m_b=4  这是t4成员变量新的私有值         t0.printt();//结果为 m_a=1   m_b=2  这是t0成员变量新的私有值         t5.printt();//结果为 m_a=101   m_b=102  这是t5成员变量新的私有值         t7.printt();//结果为 m_a=7   m_b=0  这是t7成员变量新的私有值         t8.printt();//结果为 m_a=5   m_b=0  这是t8成员变量新的私有值      return ;  }

 

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/c-cdevelopment/601727.html

(0)
上一篇 2021年5月10日
下一篇 2021年5月10日

精彩推荐