C++语言中关于构造函数知识梳理
- ”类“是C++中面向对象编程的重要体现,”类“是对某些具有共性特点的个性对象的抽象总结,集中反映了共同特征。针对“类”中不同对象,即变量的初始化问题,C++中引入了构造函数的概念。
- 构造函数,是对“对象”进行构造的函数,即初始化函数。构造函数的初始化可分为三种:
1.直接在类定义时确定带固定参数的构造函数。类的不同对象在定义时,初始化参数完全相同。
class Time
{public:
Time() //定义构造函数,必须与类名一致。
{hour=0;
minute=0;
sec=0; //在类中直接定义,不同对象初始化后参数完全相同。
}
void set_time();
private:
int hour;
int minute;
int sec;
};
2.带“函数”的构造函数。在定义构造函数时,应用函数的思想,形参传值到实参。“类”不同对象在定义时可以有不同的初始值。
class Time
{public :
Time(int,int,int) //声明含“参数”的构造函数,名称必须与类名一致。
private:
int hour;
int minute;
int sec;
};
Time::Time(int h, int m,int s) //定义含“参数”的构造函数,不同对象初始化后结果也不同
{hour=h; //初始化结果由参数确定。
minute=m;
sec=s;
}
int main() //主函数,应用类的对象定义。
{Time t1(12,25,26);
Time t2(23,45,39); //定义不同对象,初始化结果不同。
}
- 参数初始化列表对成员进行初始化。也是利用含有默认参数的构造函数,不过是更加简洁的一种方法。
Time::Time(int h,int m,int s):hour(h),minute(m),second(s){} //利用参数初始化列表进行初始化,简洁高效。
- 利用构造函数的重载进行对象的初始化。定义对象时是否给出具体的实参,给了几个实参。初始化是根据实参来找具体的构造函数,看看到底是用哪一个构造函数。(第二种加第一种)。因此,为了使程序正确运行,**程序中应只含有一个全部都有具体的参数的构造函数(默认构造函数有且仅有一个)。 **