带一个参数的构造函数,并不是所有的一个参数的构造函数都是转换构造函数
转换构造函数的功能就是将一个不是类类型的对象装换为类类型
通过一段程序来理解:
#include <iostream>
using namespace std;
class Clock
{
private:
int hour_;
int minute_;
int second_;
public:
Clock(int hour=0, int minute=0, int second=0)
{
hour_ = hour;
minute_ = minute;
second_ = second;
cout<<"Clcok"<<endl;
}
~Clock()
{
cout<<"~Clock"<<endl;
}
};
int main()
{
Clock c(10); //调用普通构造函数
c = 20; //调用转换构造函数
//这时会生成一个临时对象,Clock temp(20); c = temp;(调用的是=运算符)
//如果我们没有重写=运算符,会调用系统默认的=运算符
Clock c1=30; //与上一条语句不同,这条语句调用的是普通的构造函数
return 0;
}