c++中类型转换构造函数
时间: 2024-01-03 18:22:48 浏览: 111
C++中的类型转换构造函数是一种特殊的构造函数,它允许将一个类型的对象转换为另一个类型的对象。类型转换构造函数通常用于实现隐式类型转换,使得在某些情况下可以自动地将一个类型转换为另一个类型。
下面是一个示例,演示了如何在C++中定义和使用类型转换构造函数:
```cpp
#include <iostream>
class MyInt {
public:
MyInt(int value) : m_value(value) {}
// 类型转换构造函数
MyInt(double value) : m_value(static_cast<int>(value)) {}
int getValue() const {
return m_value;
}
private:
int m_value;
};
int main() {
MyInt myInt1 = 10; std::cout << "myInt1: " << myInt1.getValue() << std::endl;
MyInt myInt2 = 3.14;
std::cout << "myInt2: " << myInt2.getValue() << std::endl;
return 0;
}
```
在上面的示例中,我们定义了一个名为`MyInt`的类,它有两个构造函数。第一个构造函数接受一个`int`类型的参数,用于初始化`m_value`成员变量。第二个构造函数接受一个`double`类型的参数,通过使用`static_cast`将其转换为`int`类型,并将结果赋值给`m_value`成员变量。
在`main`函数中,我们分别使用`10`和`3.14`初始化了两个`MyInt`对象。由于存在类型转换构造函数,编译器会自动将`10`转换为`int`类型,并调用第一个构造函数进行对象的初始化。同样地,编译器会将`3.14`转换为`double`类型,并调用第二个构造函数进行对象的初始化。
输出结果为:
```
myInt1: 10
myInt2: 3
```
阅读全文