构造函数的调用(无参构造和有参构造)

构造函数分为三类
   一:无参数构造函数; 
   二:带参数的构造函数 
   三:赋值构造函数*/

   四:默认构造函数
 #include<iostream>
 using namespace std;
 class test
 {
     public:
         test()//无参构造函数 
         {
             n_a=0; 
             n_b=0;
             cout<<"无参数的函数"<<endl;  
         }
        test(int a,int b)//有参数构造函数 
        {
            n_a=a;
            n_b=b;
        }
        test(const test& obj) //赋值构造函数 ,对象之间的初始化,用一个对象初始化另外一个对象
        {
            cout<<"我也是构构造函数"<<endl; 
         } 
         private:
             int n_a;
             int n_b;
             protected:
   }  ;
//调用无参构造函数
int main01() 
{
    test t1;//这样子调用函数,如果什么都不写,他会调用无参构造函数。  
    cout<<"hello"<<endl;
    return 0;
}
//调用有参构造函数的二种方法 
int main()//调用有参构造类型 有三种方法 
{
    
    
    //第一种方法括号法 (C++编译器帮我们自动调用构造函数) 
    test t1(1,2);
 
    
    //第二种直接调用构造函数    (手工调用构造函数) 
    test t4=test(1,2);//注意;直接调用构造函数将产生一个匿名对象(难点:匿名对象的去和留)此处不细讲。 
    //直接调用有参构造函数完成t4的初始化,t4只会调用一次构造函数,这个等号是初始化操作 
  
    cout<<"hello"<<endl;
    
    /*注意 不能用test t2=(3,4)这种方法赋值,因为编译器认为这是一个逗号运算符,
     只会将第二个数字给构造函数赋值,如果构造函数只有一个参数,那么这个方法可以进行调用*/ 
                  
     test t2=(3,4);
//赋值构造函数 
     t1=t4;//把t4copy给t1,这个等号是赋值操作 ,而直接调用构造函数的的等号是初始化操作 
    //对象的初始化和对象的赋值是两个不同的概念 
    //C++对=符号进行了功能性的增强 

//默认构造函数 :

  如果你的类中没有写构造函数 ,那么C++编译器会默认给你提供一个构造函数 
     return 0;
 } 

  • 14
    点赞
  • 41
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值