1619-7 张良 十一月二十一号总结 [连续第五十二天]

标题:构造函数

关键词:构造函数

内容:

1

一、 构造函数是干什么的

class Counter

{

public:

         // 类Counter的构造函数

         // 特点:以类名作为函数名,无返回类型

         Counter()

         {

               m_value = 0;

         }        

private:   

         // 数据成员

         intm_value;

}

 

       该类对象被创建时,编译系统对象分配空间空间,并自动调用该构造函数->由构造函数完成成员的初始化工作

 

eg:    Counter c1;

        编译系统为对象c1的每个数据成员(m_value)分配内存空间,并调用构造函数Counter( )自动地初始化对象c1的m_value值设置为0

故:

        构造函数的作用:初始化对象的数据成员。

二、 构造函数的种类

 

class Complex

{        

private :

        double    m_real;

        double    m_imag;

public:

        //    无参数构造函数

        // 如果创建一个类你没有写任何构造函数,则系统会自动生成默认的无参构造函数,函数为空,什么都不做

        // 只要你写了一个下面的某一种构造函数,系统就不会再自动生成这样一个默认的构造函数,如果希望有一个这样的无参构造函数,则需要自己显示地写出来

    Complex(void)

        {

             m_real= 0.0;

             m_imag= 0.0;

        }        

        //    一般构造函数(也称重载构造函数)

        // 一般构造函数可以有各种参数形式,一个类可以有多个一般构造函数,前提是参数的个数或者类型不同(基于c++的重载函数原理)

        // 例如:你还可以写一个 Complex( int num)的构造函数出来

        // 创建对象时根据传入的参数不同调用不同的构造函数

  

  Complex(doublereal, double imag)

        {

             m_real= real;

             m_imag= imag;        

         }

       

        //    复制构造函数

        //     复制构造函数参数为类对象本身的引用,用于根据一个已存在的对象复制出一个新的该类的对象,一般在函数中会将已存在对象的数据成员的值复制一份到新创建的对象中

        //    若没有显示的写 复制构造函数,则系统会默认创建一个复制构造函数,但当类中有指针成员时,由系统默认创建该复制构造函数会存在风险,具体原因请查询有关 “浅拷贝” 、“深拷贝”的文章论述



这个地方我有点不懂,所以上网搜一些资料。。。。明天我会看完。。。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值