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

如何优化公司网站wordpress 面向对象

如何优化公司网站,wordpress 面向对象,苏州有什么好玩的推荐,中学网站模板下载文章目录 const_cast:去掉常量类型的类型转换static_cast:提供编译器认为安全的类型转换&#xff08;在编译阶段完成类型转换&#xff09;reinterpret:类似c风格的强制类型转化dynamic_cast:主要用在继承结构里&#xff0c;可以支持RTTI类型识别的上下转换dynamic_cast<>…

文章目录

  • const_cast:去掉常量类型的类型转换
  • static_cast:提供编译器认为安全的类型转换(在编译阶段完成类型转换)
  • reinterpret:类似c风格的强制类型转化
  • dynamic_cast:主要用在继承结构里,可以支持RTTI类型识别的上下转换
    • dynamic_cast<>仅对多态类型(含虚函数的类)有效
    • 多继承里的交叉转换

const_cast:去掉常量类型的类型转换

const_cast<>是语言级别上的检测,和C风格的强制转换在汇编代码上是一样的

//C
const int a1 = 10;
double* p1 = (double*)&a1;
//C++
int* p2 = const_cast<int*>(&a1);

const_cast只能用于去掉const属性,不弄用于类型转换
在这里插入图片描述
且const_cast<里面只能放指针和引用类型>
在这里插入图片描述

static_cast:提供编译器认为安全的类型转换(在编译阶段完成类型转换)

static_cast允许标准类型之间的相互转换和void*类型转换成其他指针类型

int a = 10;
char b = static_cast<char>(a);
long c = static_cast<long>(a);
int* p = nullptr;
short* b = static_cast<short*>(p);//错误void* p1 = nullptr;
short* p2 = static_cast<short*>(p1);

在这里插入图片描述

reinterpret:类似c风格的强制类型转化

int* k = nullptr;
//危险!容易照成未定义行为
short* b = reinterpret_cast<short*>(k);
double* j = reinterpret_cast<double*>(k);

原本指向四字节的int型k指针被强制转成八字节,多出那四字节可是未初始化的空间,当程序使用这块空间时会导致程序宕机

dynamic_cast:主要用在继承结构里,可以支持RTTI类型识别的上下转换

在程序运行时动态检查对象的实际类型。它会查询对象的RTTI信息(存储在虚函数表中)来判断转换是否合法

class A
{
public:virtual void func() = 0;
};class B : public A
{
public:void func() { std::cout << "call B::func" << std::endl; }
};class C : public A
{
public:void func() { std::cout << "call C::func" << std::endl; }void C_uinque_func() {std::cout << "C unique func" << std:: endl; }
};int main()
{B b1;C c1;show_func(&b1);show_func(&c1);return 0;
}

写一个show_func函数

void show_func(A* p)
{p->func();
}int main()
{B b1;C c1;show_func(&b1);show_func(&c1);return 0;
}

通过虚函数调用到两个派生类重写以后的函数的打印结果
在这里插入图片描述
当我们想实现传入子类C执行 C_uinque_func()函数
传入子类B执行func()函数时
可以把show_func()函数改成这样

void show_func(A* p)
{C* pd2 = dynamic_cast<C*>(p);//若转换非法(B无法转换成C,这两个之间无继承关系)对指针返回nullptrif(pd2 != nullptr){pd2->C_uinque_func();}else{p->func();}
}int main()
{B b1;C c1;show_func(&b1);show_func(&c1);return 0;
}

此时就可以动态调用到子类C的函数
在这里插入图片描述

dynamic_cast<>仅对多态类型(含虚函数的类)有效

如果我们把基类A里的虚函数改为普通函数,
dynamic无法正常使用
在这里插入图片描述

多继承里的交叉转换

dynamic_cast 可以用于跨越不同基类分支的转换,前提是目标类型与对象实际类型兼容

class Base1 
{
public:Base1(){std::cout << "this is Base1" << std::endl;}virtual ~Base1() {} 
};
class Base2 
{ 
public: Base2(){std::cout << "this is Base2" << std::endl;}virtual ~Base2() {} 
};
class Derived : public Base1, public Base2 
{};int main()
{Base1* b1 = new Derived;// 合法,因为对象实际是DerivedBase2* b2 = dynamic_cast<Base2*>(b1);return 0;
}

文章转载自:

http://4RdHirju.tsfLw.cn
http://YOGzESgL.tsfLw.cn
http://jznkO0wt.tsfLw.cn
http://G9pCfwSm.tsfLw.cn
http://ko7Aggyi.tsfLw.cn
http://nQInZKvx.tsfLw.cn
http://bWqP86Aj.tsfLw.cn
http://9MTnLdkZ.tsfLw.cn
http://iWDjiBgq.tsfLw.cn
http://TT77eK28.tsfLw.cn
http://t7k8tI67.tsfLw.cn
http://rsLX4aIX.tsfLw.cn
http://qJimBdAL.tsfLw.cn
http://aFHvTfZS.tsfLw.cn
http://Zl60tNPN.tsfLw.cn
http://GU1jkccL.tsfLw.cn
http://sTcLTHtN.tsfLw.cn
http://nOhAwsY7.tsfLw.cn
http://JRLzzY69.tsfLw.cn
http://GRLuy059.tsfLw.cn
http://psJMUTrP.tsfLw.cn
http://D1WHPdgS.tsfLw.cn
http://0TBqAd5w.tsfLw.cn
http://5DeJ2qJL.tsfLw.cn
http://iCSqp28k.tsfLw.cn
http://MrYR3zcK.tsfLw.cn
http://CgrZeShD.tsfLw.cn
http://AQ4r8mCt.tsfLw.cn
http://MVQfiaF4.tsfLw.cn
http://qjJW2pOZ.tsfLw.cn
http://www.dtcms.com/wzjs/742044.html

相关文章:

  • 百度网盘官网登陆入口怀化seo网站
  • 网站企业备案和个人备案的区别吗wordpress自动缩略图
  • 成都网站建设公司浅谈wordpress如何开发手机版
  • 网站建设费分多少期摊销白云手机网站开发
  • 栏目手机版 企业网站建筑门户网站
  • 佛山优化网站推广苏州网站建设代理
  • 广州站八个字广州有什么好玩的东西
  • 公司旅游视频网站模板网络营销渠道类型有哪些
  • 苏州的建筑公司网站网站建设沈阳
  • 外链数是网站反向链接码空间域名主机网站模板
  • 不用源码做网站注册公司流程和费用时间
  • 校园网站建设指导思想网页游戏排行力荐新壹玩
  • 网站建设需求列表wordpress teamtalk
  • 网站建设交流qq网站工作状态建设
  • 做网站做生意智慧团建初始密码
  • 做网站怎么备案做网站要用什么软件
  • 网站设计的用途wordpress菜单不能打开
  • 做网站设计学那个专业好东莞网站系统哪里好
  • 四举措加强网站建设手机页面网站模板怎么卖
  • 2008 做网站给素材网站做素材方法
  • 网站建设文字设计烟台网站建设方案策划
  • 南宁自助建站模板下载好用的免费建站网站
  • 网站建设费税率多少钱做网站 注意
  • 济南网站建设 历山北路wordpress上不去了
  • 做网站映射tcp开发一套系统需要多少钱
  • wordpress多站点好用吗南京鼓楼做网站
  • 客户做网站嫌贵了wordpress怎么上传
  • 分宜网站建设比较有名的设计网站
  • 怎么仿网站链接用asp做网站需要什么软件
  • 专业定制网站系统如何建设一个专业的网站