C++ 类类型转换函数解析

在 C++ 中,类可以通过定义特殊的成员函数来实现类型转换,这类函数被称为“转换函数”。转换函数允许将类的对象隐式或显式地转换为其他数据类型。

例如,假设有一个名为 Point 的类,用于表示二维平面上的点:

class Point {
public:
    Point(float x, float y) : x(x), y(y) {} 

    float get_x() const { return x; }
    float get_y() const { return y; }

private:
    float x;
    float y;
};

我们可以为 Point 类定义一个转换函数,使其可以转换为 float 类型,表示该点的 x 坐标:

class Point {
public:
    // ... (其他成员函数)

    operator float() const { return x; } // 转换函数,将 Point 对象转换为 float
};

现在,我们可以将 Point 对象直接用作 float 类型的值:

Point p(2.5, 3.7);
float x_coord = p; // 使用转换函数将 p 转换为 float

在这个例子中,x_coord 将被赋值为 2.5。这是因为编译器会自动调用 Point 类中定义的转换函数 operator float()p 转换为 float 类型。

需要注意的是,转换函数必须是类的成员函数,并且不能指定返回类型(即使是 void 也不行)。这是因为转换函数的返回类型是隐式的,由函数名后面的类型转换运算符决定。

ppt 文件大小:8.78MB