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

html5网站源代码山东网站建设是什么

html5网站源代码,山东网站建设是什么,预售网站开发,动漫网站设计模板C 快速回顾(六) 前言一、const_cast二、reinterpret_cast三、dynamic_cast四、static_cast 前言 用于快速回顾之前遗漏或者补充C知识 一、const_cast const_cast主要用于添加或移除const(或volatile)属性。它不改变类型本身&…

C++ 快速回顾(六)

  • 前言
  • 一、const_cast
  • 二、reinterpret_cast
  • 三、dynamic_cast
  • 四、static_cast


前言

用于快速回顾之前遗漏或者补充C++知识


在这里插入图片描述

一、const_cast

const_cast主要用于添加或移除const(或volatile)属性。它不改变类型本身,只改变类型的常量性。注意:移除常量性的操作必须谨慎,因为修改一个原本定义为常量的对象会导致未定义行为。

如下是正常的转换:

class FTestClass
{
public:void Init() {}
};int main()
{const FTestClass* Ptr = new FTestClass();//Ptr->Init();FTestClass* NotConstPtr1 = const_cast<FTestClass*>(Ptr);NotConstPtr1->Init();FTestClass* NotConstPtr2 = (FTestClass*)Ptr;NotConstPtr2->Init();system("pause");return 0;
}

如下是错误的转换

	const int a = 10;int* aa = const_cast<int*>(&a);*aa = 20; // 错误!!! 无法修改std::cout << a; // 这里还是10

二、reinterpret_cast

reinterpret_cast提供低层次的重新解释位模式的转换。它可以将任意指针类型转换为另一个指针类型,或者将指针和整数之间转换。这种转换非常不安全,因为它不进行任何类型检查。通常用于底层编程,如驱动程序和需要直接操作内存的场合。

int main()
{FTestClass* Ptr = new FTestClass();// 转换为int值 再 转换回去int value = reinterpret_cast<int>(Ptr);FTestClass* NewValue1 = reinterpret_cast<FTestClass*>(value);NewValue1->Init();// 转换为int指针 再 转换回去int* IntPtr = reinterpret_cast<int*>(Ptr);FTestClass* NewValue2 = reinterpret_cast<FTestClass*>(IntPtr);NewValue2->Init();system("pause");return 0;
}

三、dynamic_cast

dynamic_cast主要用于在类层次结构中进行安全的向下转换(即基类指针或引用转换为派生类)以及跨继承转换(如多继承中的兄弟类之间的转换)。它需要运行时类型信息(RTTI)支持,因此只能用于多态类型(即类至少有一个虚函数)。如果转换失败,对于指针转换返回nullptr,对于引用转换则抛出std::bad_cast异常。

注意:dynamic_cast 是安全的转换,当转换失败时会返回空指针,并不会变成野指针

class FTestClass
{
public:void BaseFunc(){}//dynamic_cast 必须有虚函数才能转换virtual void Init(){}
};class FTestChildClass : public FTestClass
{
public:void ChildFunc(){}
};int main()
{FTestClass* Ptr = new FTestChildClass();FTestChildClass* ChildPtr = dynamic_cast<FTestChildClass*>(Ptr);ChildPtr->BaseFunc();ChildPtr->ChildFunc();FTestClass* Ptr1 = new FTestClass();FTestChildClass* ChildPtr1 = dynamic_cast<FTestChildClass*>(Ptr1);if (ChildPtr1 == nullptr){printf("is null.\r\n");}system("pause");return 0;
}

四、static_cast

static_cast是最常用的转换,用于非多态类型的转换。它可以在相关类型之间进行转换,比如整数到浮点数,或者指针在类层次结构中的向上转换(即基类指针指向派生类对象,这是安全的)。它也可以用于任何隐式转换的逆转换(例如,将void*转换为其他指针类型,或者将基类指针转换为派生类指针,但后者是不安全的,需要程序员确保安全)

class FTestClass
{
public:void BaseFunc(){printf("Base\r\n");}};class FTestChildClass : public FTestClass
{
public:void ChildFunc(){printf("Child\r\n");printf("%d\r\n", a);}int a = 10;
};int main()
{FTestClass* Ptr = new FTestChildClass();FTestChildClass* ChildPtr = static_cast<FTestChildClass*>(Ptr);ChildPtr->BaseFunc();ChildPtr->ChildFunc();FTestClass* Ptr1 = new FTestClass();FTestChildClass* ChildPtr1 = static_cast<FTestChildClass*>(Ptr1); // 转换失败不会为空,会变成野指针ChildPtr1->BaseFunc();//这里的函数理论上转换失败为什么还能调用?// 是因为函数是在编译时就确定好了,但是如果访问其中的变量值就会出现问题ChildPtr1->ChildFunc();system("pause");return 0;
}

文章转载自:

http://tsYovvnk.kbgzj.cn
http://m5XQE1eA.kbgzj.cn
http://Xx9DYkCS.kbgzj.cn
http://JDdU32V2.kbgzj.cn
http://0movxg0B.kbgzj.cn
http://VVenXHae.kbgzj.cn
http://dL3k9Rxm.kbgzj.cn
http://lPBefQus.kbgzj.cn
http://lSOV0MYD.kbgzj.cn
http://vVZro9eN.kbgzj.cn
http://XQMTa9mY.kbgzj.cn
http://Rg4VaXim.kbgzj.cn
http://5EhZajWv.kbgzj.cn
http://I1icMk6A.kbgzj.cn
http://2gstRnIr.kbgzj.cn
http://mRg5BnNU.kbgzj.cn
http://YixgHoVe.kbgzj.cn
http://AhwybqQP.kbgzj.cn
http://c0B8EC08.kbgzj.cn
http://E1zgK1Tr.kbgzj.cn
http://NFlIfeu7.kbgzj.cn
http://B8oEdGBl.kbgzj.cn
http://dw7OiNHj.kbgzj.cn
http://mErF8d6G.kbgzj.cn
http://4k6rHpky.kbgzj.cn
http://Gc3uZyU9.kbgzj.cn
http://sRcX7gF6.kbgzj.cn
http://V8EXUYJF.kbgzj.cn
http://TE38MQok.kbgzj.cn
http://AvNo1XiU.kbgzj.cn
http://www.dtcms.com/wzjs/639865.html

相关文章:

  • 如何建设和优化一个网站wordpress导航点不开分类
  • 企业网站建设中存在的问题wordpress视频适应手机
  • 珠海网站建设技术托管什么软件做高级网站
  • 伊春北京网站建设制作一个WordPress主题
  • 网站开发与spark微信推广软件哪个好
  • 深圳做网站网络公司排名WordPress qinmei影视主题
  • 做网站哪个最好wordpress文章入口设置
  • 岳阳网站建设哪里有企业信用信息系统
  • 做网站建设优化的公司有趣的h5创意设计
  • 网站整体结构南宁 建网站 公司
  • 网站备案手续英语做美食网站
  • 网站设计与网页制作模板做一个企业网站价格
  • 二七网站建设潍坊专利申请
  • 网站建设方案计划书人员规划怎么做盗号网站
  • 网站建设怎么添加背景音乐凡科互动官网登录入口网页版
  • 100种增加网站流量的方法wordpress 开发指南
  • 深圳网站设计制作元现在进出重庆最新规定
  • 大连做网站哪家好一点珠海互联网推广
  • wordpress网站描述网站开发 项目内容
  • dede做的网站打不开织梦调用wordpress
  • 网站域名怎么快速备案价格用阿里云做网站注意事项
  • 企业网站推广公司 知乎做网站借用网络图片不违法吧
  • 织梦摄影网站模板wordpress图片属性添加
  • 永久免费无代码开发平台福建网站优化
  • 什么网站都有漏洞dede网站乱码
  • 模板板网站管理信息系统有哪些
  • 展示型网站建设价格在线设计平台教学
  • 电子商务网站登录小红书怎么做关键词排名优化
  • 广州网站制作培训wordpress 支付宝插件下载
  • 有趣的网站官网云服务器管理