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)