c++ 构造函数初始化过程

本文介绍了C++中构造函数的作用,强调了构造函数用于初始化对象数据成员。讨论了构造函数与普通成员函数的区别,并指出构造函数不能声明为const。通过示例详细解析了构造函数的初始化过程,包括默认构造函数、带有参数的构造函数以及通过输入流初始化的构造函数。文章还提到了为何通常需要自定义默认构造函数,并留下思考问题关于const对象与const成员函数的关联。
摘要由CSDN通过智能技术生成

    每个类都会为它的对象定义初始化的方式,用一个或几个特殊的函数去控制对象的初始化,我们把这些特殊的函数叫做 构造函数。

    那么,问题来了,构造函数作用是什么?

    答:为了初始化对象的数据成员。就是简单。别把构造函数想着多复杂。

    那么,问题又来了,构造函数和普通的成员函数有什么相似和区别呢?

    答: 构造函数与函数名与类名同名,没有返回值类型,有一个参数列表(0个或多个形参),有一个函数体(可以为空)。

    刚说到,可以定义一个或几个构造函数,那么不同的构造函数互为重载函数,(即 各个构造函数间形参个数或形参类型不同)

    好,说到这,什么是构造函数,以及为什么要定义构造函数已经说得很清楚了。

    补充一点, 构造函数不能定位为const, 因为类的const对象,直到构造函数完成后,才真正获得其 const属性,所以,在构造函数中可以对 const对象的成员变量写值。

    接下来用几个例子说明构造函数,以及其初始化的过程。

 

// a.h

#include <string>

#include <istream>

    class A

    {

     public:

         A() = default;

         A(std::string book) : bookNo(book) {}

         A(std::string book,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值