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

深圳公司网站设计电商网站开发流程list

深圳公司网站设计,电商网站开发流程list,专业网站开发平台,太原网站建设方案书. C中,转型(cast)技术是将一种数据类型转换为另一种数据类型的过程。C主要提供了两种主要的转型方式:旧式的C转型方式和四种新式的C转型方式。 1、旧式C转型方式 特点:语法简介,可执行数值类和指针类型转换…

.
C++中,转型(cast)技术是将一种数据类型转换为另一种数据类型的过程。C++主要提供了两种主要的转型方式:旧式的C转型方式和四种新式的C++转型方式。
1、旧式C转型方式

  • 特点:语法简介,可执行数值类和指针类型转换,但是缺乏类型安全检查,并且代码可读性较差
语法:
(type) expression;例子:
int a = 10;
double b = (double)a;

2、C++新式转型方式
2.1、const_cast(expression);

  • 主要用于添加或移除const或volatile修饰符,不能用于类型转换
const int a = 10;
int* b = const_cast<int*>(&a);  // 移除const修饰符

2.2、dynamic_cast(expression);

  • 主要用于继承体系中进行安全的向下转型,即从基类指针或引用转换为派生类指针或引用
  • 内部采用运行时类型信息(RTTI)实现,性能开销较大。
  • 在转换时进行类型安全检查,如果转换失败返回nullptr或抛出异常
class Base { virtual void foo() {} };
class Derived : public Base {};Base* b = new Derived;
Derived* d = dynamic_cast<Derived*>(b);  // 安全的向下转型

2.3、reinterpret_cast(expression);

  • 用于低级别的类型转换,通常用于指针类型之间的转换或整数与指针之间的转换
int a = 10;
int* p = &a;
char* c = reinterpret_cast<char*>(p);  // 将int指针转换为char指针

2.4、static_cast(expression);

  • 用于常见的类型转换对于向下转型,不进行运行时检查
double a = 10.5;
int b = static_cast<int>(a);  // 浮点数转整数Base* base = new Derived;
Derived* derived = static_cast<Derived*>(base);  // 向下转型

3、运行时类型信息(RTTI)

  • RTTI是C++提供的一种机制,允许程序在运行时获取对象的类型信息。
  • RTTI依赖于编译器为多态类型(虚函数表)生成额外的类型信息,在虚表中存储了一个type_info对象的指针,用于描述类型信息的类。
  • 当使用dynamic_cast进行类型转换时,编译器会生成代码,通过对象的虚表指针查找type_info对象,检查目标类型与对象的实际类型是否兼容(是否是基类或派生类)
class Base {
public:virtual void foo() {}  // 必须是多态类型(包含虚函数)
};class Derived : public Base {};Base* base = new Derived;// 使用 dynamic_cast 进行向下转型
Derived* derived = dynamic_cast<Derived*>(base);
if (derived) {std::cout << "转型成功!" << std::endl;
} else {std::cout << "转型失败!" << std::endl;
}

思维导图笔记:
请添加图片描述

http://www.dtcms.com/a/500538.html

相关文章:

  • 中国石家庄网站wordpress相册插件下载
  • 微信电影网站建设教程推广引流客源
  • 《Cargo 参考手册》第二十二章:发布命令
  • vue2 + vxe-table + xe-clipboard实现列表区域选中和复制粘贴
  • 投资理财网站开发mmd怎么做下载网站
  • 大货车找事做下载怎么网站wordpress做x站主题
  • php完整网站开发案例柳州建设公司网站
  • C++11----列表初始化和initializer_list
  • 门户网站建设方法wordpress模板制作软件
  • 长沙建站做企业网站公司表情包在线制作模板大全
  • 关键词挖掘工具站别具光芒 Flash互动网站设计
  • 建设网站需要的配置做网站难吗 挣钱吗
  • 两学一做知识竞赛试题网站临沂网站建设公司全国
  • 网站设计收费明细表织梦手机网站怎么仿制
  • 二进制的加减乘除
  • 泰安诚信的企业建站公司广告公司手机网站模板
  • 重庆网站排名外包网上怎么找客户资源
  • 网站管理平台扩展插件黄页污水
  • h5网站怎么做api对接建设小说网站费用
  • 有小间隔值的switch-case语句,编译器使用了两级跳转表(two-level jump table)优化。
  • flash手机网站制作商家小程序怎么制作
  • 建设部指定招标网站phpcms做网站好吗
  • 桶装水网站建设江苏SEO网站建设
  • seo数据优化教程seo 网站title
  • (论文速读)文本引导的可探索图像超分辨率
  • 网站开发十大公司wordpress如何修改后台登录地址
  • 网站创建做网站分什么软件
  • 好的做淘宝详情页的网站有哪些分销网络建设
  • AI协同编程架构师岗位的诞生
  • 网站首页尺寸深圳龙华租房