博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
结构体的强制装换
阅读量:6515 次
发布时间:2019-06-24

本文共 458 字,大约阅读时间需要 1 分钟。

1.定义结构体

struct newtype{long long n;int other,things;}

2.在结构体定义中插入如此一段代码

operator long long(){    return n;}

如此一来,就可以像这样使用了:

newtype ne;ne.n=65536;int x=ne;

但是,写这样一段代码却会报错,应该怎么办呢?难道要去改头文件写int的强制转换吗?

int x=65536;newtype ne=x;

经过实验发现,其实重载一次运算符“=”就可以了。代码如下(放在结构体定义中)

newtype &operator=(long long val){    n=val;}

现在这样就是正确的了:

long long x;x=(newtype)12345;

其实有的时候定义强制装换比重载运算符要方便得多。比如像现在这样,就不用再定义减号、乘号和除号了。

转载于:https://www.cnblogs.com/Bear-Dictionary/p/3551687.html

你可能感兴趣的文章
JVM分代垃圾回收策略的基础概念
查看>>
《交互式程序设计 第2版》一3.5 捕获简单用户交互行为
查看>>
安装操作系统需要注意的事项
查看>>
5G技术的5大猜想
查看>>
MongoDB 3.0(1):CentOS7 安装MongoDB 3.0服务
查看>>
如何重现难以重现的bug
查看>>
别随便安装 Pokemon GO被曝藏恶意后门
查看>>
BBC即将推出Britflix流媒体服务:欲成为英国版Netflix
查看>>
行成于思:从Oracle到MySQL
查看>>
让数据会思考会说话,为出海企业提供多样化数据智能解决方案
查看>>
我眼中的自动化测试框架设计要点
查看>>
FLIF:自由的无损图像格式
查看>>
《计算机系统:核心概念及软硬件实现(原书第4版)》——3.7 总结
查看>>
Google开源Inception-ResNet-v2,提升图像分类水准
查看>>
《我的视频我做主:Premiere Pro CS5实战精粹》——1.4 Adobe Premiere Pro CS5介绍
查看>>
Opera 出售细节曝光:昆仑出资1.68亿美元
查看>>
《Adobe Flash CS5 ActionScript 3.0中文版经典教程》——1 导航Flash时间轴 1.1 课程概述...
查看>>
Node.js Undocumented(2)
查看>>
解决@ResponseBody注解返回中文乱码
查看>>
Netty代码分析
查看>>