目录
(1)隐式类类型转换?
以类A举例说明什么是隐式类类型转换及其本质
class A
{
public:
int age;
string name;
public:
A() = default;
A( int _age ): age( _age ) { };
};
void print( A ind ) { cout << ind.age << " " << ind.name << endl; };
int main()
{
print(80);
A byage;
byage = 70;
}
在上述main函数中,以80为实参调用print()函数、将70赋给类A的对象,均属于隐式类类型转换。
当对方需要类型A的对象,而己方给出的是类型A的数据成员时,隐式类类型转换发生了,它实现了从一个类的数据成员到此类对象的转换。
上述过程的本质是编译器借助对应的构造函数,帮我们创建了临时对象,随后利用此对象进行参数传递和赋值:
print(80) ==== A temp(80); print(temp);
byage = 7