C++中对象的初始化之构造函数

目录

前言

一、构造函数的语法

二、两种分类方式

1.按参数分类

2.按类型分类

三、构造函数的调用

总结


前言

        构造函数有两种分类方式和三种调用方法。可以按照参数分类、类型分类两种方式分类,可以按照括号法,显示法、隐式转换法三种方式调用。


一、构造函数的语法

        构造函数的作用是为了在创建对象时为对象的成员属性赋值,由编译器自动调用。如果我们不提供构造函数,编译器会为我们提供一个是空实现的构造函数。语法如下:

class gz
{
    public:
    gz(){    //构造函数,函数名与类名一致。无返回值无需写void,可发生重载,自动调用。
    cout<<"gz"<<endl;
        }

};

二、两种分类方式

1.按参数分类

按参数分类可以分为有参构造(默认构造)和无参构造,代码示例如下:

class gz
{
    public:
    gz(){    //无参构造
    cout<<"无参"<<endl;
        }
    gz(int n){    //有参构造
    cout<<"有参"<<endl;
        }
};

2.按类型分类

按类型分类可以分为普通构造和拷贝构造,有参构造和无参构造都叫普通构造,拷贝构造则是在一个构造函数的参数中传入另一个构造函数的数据,如:gz(const gz &n)。

三、构造函数的调用

构造函数有三种调用方法,分别是括号法,显示法,隐式转换法。

代码分别如下:

//括号法
gz n1(100);

//显式法
gz n2=gz(100);

//隐式转换法崛起
gz n3=100;

调用默认构造时,不要加()。

构造函数的调用规则如下:

        编译器会默认添加构造函数(空)、析构函数(空)以及拷贝函数(值传递),如果我们定义了有参构造函数,编译器则不提供无参构造函数(需要使用须自己提供),如果定义了拷贝构造函数则不提供无参或者有参构造函数(需要使用须自己定义)。


总结

        构造函数有两种分类方式和三种调用方式,要根据自己的使用习惯和使用场景选择合适的调用方法。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值