C/Cpp / 构造函数种类

2018-03-15  创建人:Ruo_Xiao
开发环境:VS2010
邮箱:xclsoftware@163.com

2018-04-16  修改人:Ruo_Xiao
添加对类型转换构造函数隐式转换的抑制使用的说明,即:explicit。

2019-06-19  修改人:Ruo_Xiao
修正对转换构造函数的说明。

一、默认构造函数(无参数构造函数)

Father()
{
    std::cout<<"我是默认构造函数!"<<std::endl;
    std::cout<<std::endl;
}

2、一般构造函数(重载构造函数)

  • 这种构造函数类中可以有多个,但是形参类型或者个数不能相同,需要满足C++重载原理。
  • 栗子:
Father(int i,double d)
{
    cout<<"我是一般构造函数!"<<endl;
    cout<<endl;
}

3、复制构造函数,即:拷贝构造函数

  • 拷贝构造函数参数为类对象本身的引用,用于根据一个已存在的对象复制出一个新的该类的对象。
  • 若没有显示的写拷贝构造函数,则系统会在适当的时候创建一个默认的拷贝构造函数
  • 栗子:
Father(const Father &F)
{
    cout<<"我是复制构造函数!"<<endl;
    cout<<endl;
}

4、转换构造函数

  • 条件:构造函数只有一个参数,而且该参数不是本类的const引用。
  • 作用:相当于C语言隐式类型转换,相当于 类Test t = 100; // 就是t = Test(100);
  • 栗子:
Father(int i)
{
    cout<<"我是转换构造函数!"<<endl;
    cout<<endl;
}

 

  • 上述属于隐式转换,若不编写者不想让调用者执行该操作,即:必须显示调用。则在构造函数声明前面加上“explicit”即可。

5、等号运算符重载构造函数(赋值构造函数)

  • 作用:两个对象的数据成员进行赋值。
  • 条件:等号两边的对象必须已经创建。
  • 栗子:
Father &operator=( const Father &rhs )
{
    cout<<"我是等号运算符重载构造函数!"<<endl;
    return *this;
}

 

(SAW:Game Over!)
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值