background image

        

double

    m_real;

        

double

    m_imag;

public

:

        

//    无参数构造函数

        

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

函数为空,什么都不做

        

// 只要你写了一个下面的某一种构造函数,系统就不会再自动生成这样一个默认的

构造函数,如果希望有一个这样的无参构造函数,则需要自己显示地写出来

        Complex(

void

)

        {
             m_real = 0.0;
             m_imag = 0.0;
        } 
        
        

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

        

// 一般构造函数可以有各种参数形式,一个类可以有多个一般构造函数,前提是参

数的个数或者类型不同(基于 c++的重载函数原理)

        

// 

 

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

        

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

        Complex(

double

 real, 

double

 imag)

        {
             m_real = real;
             m_imag = imag;         
         }
        
        

//    复制构造函数(也称为拷贝构造函数)

        

//    复制构造函数参数为类对象本身的引用,用于根据一个已存在的对象复制出一

个新的该类的对象,一般在函数中会将已存在对象的数据成员的值复制一份到新创建的
对象中

        

//    若没有显示的写复制构造函数,则系统会默认创建一个复制构造函数,但当类

 

中有指针成员时,由系统默认创建该复制构造函数会存在风险,具体原因请查询 有关 

”  “

浅拷贝 、 深拷贝 的文章论述

        Complex(

const

 Complex & c)

        {
                

// 将对象 c 中的数据成员值复制过来

                m_real = c.m_real;
                m_img    = c.m_img;
        }            
    
        

// 类型转换构造函数,根据一个指定的类型的对象创建一个本类的对象

        

// 例如:下面将根据一个 double 类型的对象创建了一个 Complex 对象

        Complex::Complex(

double

 r)