首页 > 其他分享 >自定义类型转换

自定义类型转换

时间:2023-01-23 16:55:25浏览次数:53  
标签:类型转换 转换 自定义 源类 隐式 构造函数

自定义类之间的类型转换是通过构建构造函数的多态来进行的

 在对象刚刚定义时, 即使你使用的是赋值操作符=, 也是会调用构造函数, 而不是重载的operator=运算符.

用类型转换构造函数进行类型转换实现其它类型到本类类型的转化。
转换构造函数格式
class 目标类
{
  目标类(const 源类 & 源类对象引用)
  {
    根据需求完成从源类型到目标类型的转换
  }
}
特点:
转换构造函数,本质是一个构造函数。是只有一个参数的构造函数。如有多个参数,只能称为构造函数,而不是转换函数。

同时为了能够调用源类中的对象,需要设置这一构造函数为源类的友元

 

explicit是防止隐式类型转换的关键字 

 
  1. 指定构造函数或转换函数 (C++11起)为显式, 即它不能用于隐式转换复制初始化.
  2. explicit 指定符可以与常量表达式一同使用. 函数若且唯若该常量表达式求值为 true 才为显式. (C++20起)

因为构造函数被explicit修饰后, 就不能再被隐式调用了。也就是displayPoint(1)这种操作不能直接进行,需要Point3D p3a = static_cast<Point3D> (p2); 或者displayPoint(Point(1))这样的强制类型转换

标签:类型转换,转换,自定义,源类,隐式,构造函数
From: https://www.cnblogs.com/uestc-du/p/17065289.html

相关文章

  • arcgis api for 自定义zoom
    1.需求自定义UI,实现对地图的zoom操作,在view缩放的时候,带动画效果2.分析问题UI视图一般情况,可能大部分初学者会使用以下代码对zoom进行操作,这个方法是可以放大缩小,但是动画是......
  • 自定义表单引擎
    先总体介绍一下大概的架构和核心模块设计。先上一张整体设计图 概念还是有点多,有一些概念可能比较新,如果熟悉K2自定义表单,可能比较好理解一些。对核心的一些功能......
  • .net NPOI导出Excel,自定义单元格背景颜色,office2007及以上,及office2003使用方法
    目录:NPOI相关功能目录开发环境:VS2015.Net版本:.NetFramework4.5.2NPOI版本:2.4.1.0本以为NPOI使用颜色值会非常方便,以为RGB或16进制赋值就行了没想到NPOI不这样给我们用,......
  • 【速记】C++ STL自定义排序
    这篇笔记咱日后应该还会进行补充。关于sort的比较函数STL的algorithm库中的sort函数,可以接受一个cmp函数作为第三个参数,用来指定排序的规则。自定义sort比较函数cmp(a,......
  • 自定义生成相机标定棋盘图
    自定义生成相机标定棋盘图Writtenon2023-01-22.参考资料:A4、A3、A2、A1纸张尺寸大小毫米(mm)转像素点(px)生成棋盘格(标定板图片)摘自图片像素尺寸(厘米/英寸)换算器、......
  • 跟我20天学Java:02-自动类型转换,表达式的自动类型转换,强制类型转换
    文章目录​​学习目标​​​​一、什么是自动类型转换,为什么要学习自动类型转换?​​​​总结​​​​二、表达式的自动类型转换​​​​总结​​​​三、强制转化类型​​​......
  • HTML超链接自定义颜色
    先添加一个css样式我这里直接内嵌了因为代码量比较少不会影响太大的性能<styletype="text/css"> body{background-color:#eaeaea} a#textColorStyle:li......
  • Python入门之数据类型转换
    """数据类型转换运算符算数运算符增强运算符"""#1.数据类型转换#intfloatstrstr_usb=input("请输入美元:")#类型转换str-->intin......
  • instanceof和类型转换
    1.instanceof:判断类型是否相似2.System.out.println(XinstanceofY);//能不能编译通过!取决于X和Y直接是否存在父子关系,有父子关系编译通过,无父子关系编译报错。X指......
  • 39-IK分词自定义扩展词库
    **1、安装nginx**由于html下面的所有东西都可以直接访问,所以我们可以在html下床架一个index.html(默认为首页),然后访问nginx,如下图然后我们在html下创建es文件夹,es文件夹......