“类名 对象名 = 传参” 有两个含义:
1.隐式转换
2.赋值
## 先定义一个类,后续以此类作讲解
class 类名
{
private:int num;
public:类名 (int n):num(n) //有参构造,并把传入的n赋值类num{
}....
};
隐式转换含义
c++中,对类定义对象,并向有参构造函数传参时,
若以下式写法:
int main(int argc,int* argv)
{
类名 对象名 = 10;赋值
}
此程序中: 类名 对象名 = 赋值 自动隐式转换,
等价为:
类名 对象名 (10);
即:
类名 对象名 = 赋值;等价于
类名 对象名 (赋值);即为隐式转换
防止隐式转换explicit
class 类名
{
private:int num;
public:explicit 类名 (int n):num(n) {
}....
};
则无法隐式转换
若依然用上述程序:
类名 对象名 = 赋值;
则:无法找到相应的格式
类中格式是:
类名(传参类型 传参)
主函数传参格式应该为:
类名 对象名(传参)
无法隐式转换时的错误格式:
类名 对象名 = 传参; !!错误!!