C++ 类的类型转换函数

C++ 类的类型转换函数

在C++中,类型转换函数允许类对象在特定上下文中自动转换为其他类型。这些函数被称为转换函数(conversion functions)。

1. 语法

cpp 复制代码
operator 目标类型() const {
    // 转换逻辑
}
  • operator: 这是关键字,用于声明一个运算符重载函数。
  • 目标类型: 这是要转换为的目标类型。
  • ():这表示这是一个函数。
  • const: 这表示该函数不会修改对象的状态,是一个常量成员函数。
  • 转换逻辑:这是将当前类对象转换为目标类型的实际逻辑。

2. 关键点

  • 类型转换函数不能有返回类型,因为它们的返回类型已经由 operator 关键字和 () 中指定的目标类型确定。
  • 类型转换函数必须是成员函数
  • 类型转换函数通常被声明为 public,以便在类外部进行访问。

3. 简单的例子

cpp 复制代码
class Distance {
private:
    float meters;
public:
    Distance(float meters) : meters(meters) {}

    // 类型转换函数:将 Distance 对象转换为 float 类型
    operator float() const {
        return meters;
    }
};

int main() {
    Distance d(100.5);
    float m = d; // 自动调用 Distance 类的 operator float() const 函数,将 Distance 对象转换为 float 类型
    std::cout << "Distance in meters: " << m << std::endl;
    return 0;
}

在上面的示例中,Distance 类定义了一个类型转换函数 operator float() const,它将 Distance 对象转换为 float 类型。在 main 函数中,我们创建了一个 Distance 对象 d,然后直接将其赋值给一个 float 类型的变量 m,这样就会自动调用 operator float() const 函数,将 Distance 对象转换为 float 类型,并将结果存储在 m 中。

相关推荐
weixin_472339462 小时前
高效处理大体积Excel文件的Java技术方案解析
java·开发语言·excel
枯萎穿心攻击2 小时前
响应式编程入门教程第二节:构建 ObservableProperty<T> — 封装 ReactiveProperty 的高级用法
开发语言·unity·c#·游戏引擎
Eiceblue4 小时前
【免费.NET方案】CSV到PDF与DataTable的快速转换
开发语言·pdf·c#·.net
tan180°4 小时前
MySQL表的操作(3)
linux·数据库·c++·vscode·后端·mysql
m0_555762904 小时前
Matlab 频谱分析 (Spectral Analysis)
开发语言·matlab
浪裡遊5 小时前
React Hooks全面解析:从基础到高级的实用指南
开发语言·前端·javascript·react.js·node.js·ecmascript·php
彭祥.6 小时前
Jetson边缘计算主板:Ubuntu 环境配置 CUDA 与 cudNN 推理环境 + OpenCV 与 C++ 进行目标分类
c++·opencv·分类
lzb_kkk6 小时前
【C++】C++四种类型转换操作符详解
开发语言·c++·windows·1024程序员节
好开心啊没烦恼6 小时前
Python 数据分析:numpy,说人话,说说数组维度。听故事学知识点怎么这么容易?
开发语言·人工智能·python·数据挖掘·数据分析·numpy
简佐义的博客7 小时前
破解非模式物种GO/KEGG注释难题
开发语言·数据库·后端·oracle·golang