当前位置: 首页 > wzjs >正文

北海购物网站开发设计定制软件app开发公司

北海购物网站开发设计,定制软件app开发公司,河北网站seo外包,如何用wordpress做一个企业网站类型转换和RTTI 类型转换类与类之间的类型转换四种显示类型转换类型转换注意事项RTTI 类型转换 在 C 中,operator int() 是用户定义的类型转换运算符(User-Defined Conversion Operator),允许自定义对象隐式或显式转换为特定类型…

类型转换和RTTI

  • 类型转换
  • 类与类之间的类型转换
  • 四种显示类型转换
  • 类型转换注意事项
  • RTTI

类型转换

在 C++ 中,operator int() 是用户定义的类型转换运算符(User-Defined Conversion Operator),允许自定义对象隐式或显式转换为特定类型。除了 operator int(),你还可以定义其他类型的转换运算符,包括常见的内置类型整形和浮点数,或者指针,或者其他自定义对象

类与类之间的类型转换

//#include"List.h"
//int main()
//{
//	bit::list<int> lt = { 1,2,3,4 };
//	// 权限缩小?权限缩小和放大,仅限于const的指针和引用
//	// 这里不是权限缩小,这里是自定义类型=自定义类型之间的类型转换,重载构造函数或者类型转换
//	// 因为const_iterator是两个不同的类,重载构造函数实现
//	// 具体实现看下面ListIterator中对应的构造函数的实现
//	bit::list<int>::const_iterator cit = lt.begin();
//
//	while (cit != lt.end())
//	{
//		cout << *cit << " ";
//		++cit;
//	}
//	cout << endl;
//	return 0;
//}

类转换其他类有两种方式
重载类型转换
operator otherclass()
{};

想转换的构造函数支持该参数类型
otherclass(myclass )
{}

// iterator
//struct ListIterator<T, T&, T*>
//{
//	typedef ListNode<T> Node;
//	typedef ListIterator<T, Ref, Ptr> Self;
//	Node* _node;
//	ListIterator(Node* node)
//		:_node(node)
//	{}
//
//	ListIterator(const ListIterator<T, T&, T*>& it)
//		:_node(it._node)
//	{}
//};
//
 const_iterator
//struct ListIterator<T, const T&, const T*>
//{
//	typedef ListNode<T> Node;
//	typedef ListIterator<T, Ref, Ptr> Self;
//	Node* _node;
//	ListIterator(Node* node)
//		:_node(node)
//	{}
//
//	ListIterator(const ListIterator<T, T&, T*>& it)
//		:_node(it._node)
//	{}
//};

四种显示类型转换

  1. static_cast

​用途​:编译时已知类型关系的安全转换。
​典型场景​:

基础类型之间的显式转换(如 int→double)。
父子类指针/引用的上行转换​(子类→父类)。
​无继承关系的自定义类型转换​(需定义转换构造函数或 operator)。

  1. dynamic_cast

​用途​:运行时多态类型的安全下行转换​(父类→子类)。
​条件​:

操作数必须为多态类型​(类有虚函数)。
必须启用 RTTI(运行时类型信息)。

  1. const_cast

​用途​:修改 const 或 volatile 属性。
​典型场景​:

调用遗留 API 时去除 const(如 char* 参数需要修改)。
强制修改本应为非 const 的变量(需确保逻辑安全)。

  1. reinterpret_cast

​用途​:低级别指针类型转换或指针与整数间的转换。
​典型场景​:

指针与整数之间的互转(如内存地址操作)。
不相关指针类型之间的强制转换(如 int→char)。

类型转换注意事项

C++不是类型安全的语言,一方面用户写的自定义转换符默认支持隐式类型转换如果说考虑不全面可能会在不想要类型转换的时候隐式类型转换了(最好用explicit修饰),其次四种显示类型转换会绕过编译器检查

RTTI

RTTI是通过多态和typid来保证的,只有在多态基类必须具有虚函数表且对象必须是指向基类的指针和引用才能保证。

dynamic_cast<>支持基类向子类的显示类型转换,只有基类本身是指向子类对象的指针和引用才成立,否则会抛异常


文章转载自:

http://4yQzpcRD.Lffrh.cn
http://3TtjR8BD.Lffrh.cn
http://45jP2rnx.Lffrh.cn
http://LVVdLRY6.Lffrh.cn
http://dSjXE1hM.Lffrh.cn
http://XQ7fiNyn.Lffrh.cn
http://1w5ydAQT.Lffrh.cn
http://RjfkLq5Q.Lffrh.cn
http://AwV5qHmX.Lffrh.cn
http://YQYcOVnK.Lffrh.cn
http://81O30TeJ.Lffrh.cn
http://8fDIdsqo.Lffrh.cn
http://tvaiUEfE.Lffrh.cn
http://zZiowvcP.Lffrh.cn
http://4ZyOGRl3.Lffrh.cn
http://8tMXgjY7.Lffrh.cn
http://1oLWR7Ni.Lffrh.cn
http://qqrfQ9UU.Lffrh.cn
http://JDXhYhwB.Lffrh.cn
http://HxEoHTC1.Lffrh.cn
http://FdoV1fLJ.Lffrh.cn
http://R2xGw5D0.Lffrh.cn
http://9mvc6NMm.Lffrh.cn
http://c6JIfiKK.Lffrh.cn
http://pwnxr5cE.Lffrh.cn
http://DWEON1sa.Lffrh.cn
http://6MwhwnJg.Lffrh.cn
http://SvS6jtUx.Lffrh.cn
http://1h58y8xa.Lffrh.cn
http://lO0GiXYN.Lffrh.cn
http://www.dtcms.com/wzjs/623059.html

相关文章:

  • 免费3d模型素材网站网站建设买阿里云云服务器
  • 建设一个蛋糕网站的背景与目的wordpress自动关键词
  • 东莞 网站建设 保健品百度中搜到网站名字
  • 浙江省建设银行网站首页wordpress 微博功能
  • 怎么做微课网站怎么查网站的所有权
  • 如何高效建设品牌网站泉州网站建设技术外包
  • 教育类网站 前置审批小程序开发一个要多少钱
  • 怎么创建自己的博客网站asp access网站开发实例精讲
  • 中国建设银行网站会员用户名WordPress小工具吗美化
  • 网站建设对接视频赌钱网站怎么做的
  • 东莞想做网站四川城乡建设网站证件查询
  • 网站建设收费wordpress同ip弹一次广告
  • 深圳中高端网站建设怎么样大连优化排名推广
  • 巴彦淖尔市 网站建设wordpress轮播图设置
  • 能打开任何网站浏览器网站建设管理意见
  • 离石网站建设公司2019银川住房建设规划信息网站
  • 网站管理员怎么联系seo专员是什么
  • 网站系统建设思想如何写网络推广需要什么
  • 站长之家综合查询工具青海网站制作公司
  • 网站制作视频教程古镇高端网站建设
  • 信息化管理系统软件湖南网站seo优化
  • app开发网站公司品牌推广广告
  • 网站连接微信网站建设费用价格表
  • 上海高端网站建设制作中国艺术设计联盟
  • 网络科技公司网站建设创立网站成本
  • 专业网络工程师培训北京关键词优化报价
  • 网站推广是干嘛的电商gpm是什么意思
  • 湖北网站建设联系电话wordpress怎么做产品列表页
  • 青岛在线制作网站wordpress绑定二级域名插件
  • 自己建的网站百度查找不到西安百度公司