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

wordpress 收款什么是网站优化

wordpress 收款,什么是网站优化,石家庄百度推广官网,三农建设委员官方网站const_cast,去掉(指针或引用)常量属性的一个类型转换,但需要保持转换前后类型一致static_cast,提供编译器认为安全的类型转换(最常使用)reinterpret_cast,类似于c语言风格的强制类型转换,不保证安全;dynamic_cast,主要用于继承结构中&#xf…
  • const_cast,去掉(指针或引用)常量属性的一个类型转换,但需要保持转换前后类型一致
  • static_cast,提供编译器认为安全的类型转换(最常使用)
  • reinterpret_cast,类似于c语言风格的强制类型转换,不保证安全;
  • dynamic_cast,主要用于继承结构中,可以支持RTTI类型识别的(基类到派生类)转换

const_cast

	const int a = 10;//const_cast去掉常量属性,从const int *转换成int *int* p = const_cast<int *>(&a);//const_cast去掉常量属性,从const int &转换成int &int ref = const_cast<int&>(a);//报错,无法从const int 转换成int,//const_cast<这里必须是指针类型或引用类型>int b = const_cast<int> (a);//const_cast转换前后需要保持类型一致,这里错误,无法从const int *转换成char *char* p = const_cast<char*>(&a);

static_cast

	//static_cast,可以转换编译器认为有联系之间的类型,如(int和char),(基类和派生类)//int 和 char 都是整数类型,可以安全转换(但可能会发生截断,如果 b 超过 char 的范围int b = 10;char c = static_cast<char> (b);//没有任何联系的两个类型转换,编译器认为是不安全的,不能转换成功// int* 和 short* 是完全不同的指针类型,它们指向的数据大小不同(int 通常是 4 字节,short 通常是 2 字节)int *p = nullptr;short* p1 = static_cast<short> (p);

这里可以转换编译器认为有联系的类型,拒绝不安全的类型转换。

reinterpret_cast转换

	int* p = nullptr;//提供c语言风格的强制类型转换,不保证安全,等效于double *p1=(double *) p;//实际上不安全,double解引用为8个字节,int解引用为4个字节,会造成访问越界double* p1 = reinterpret_cast<double *> (p);

dynamic_cast转换

class Animal {
public:virtual void bark() = 0; // 必须要有虚函数(多态类型)
};class Dog : public Animal {
public:void bark() { cout << "Dog Woof! Woof!" << endl; }
};class Cat : public Animal {
public:void bark() { cout << "Cat Meow! Meow!" << endl; }
};void showAnimal(Animal* animal) {animal->bark();	
}int main() {Dog dog;Cat cat;showAnimal(&dog); showAnimal(&cat); return 0;
}

这里通过的showAnimal函数通过基类指针指向不同的派生类,从而实现调用其对应的重写方法。
但是比如说,对于Dog类,我想调用实现其另一个eat方法。

class Dog : public Animal {
public:void bark() { cout << "Dog Woof! Woof!" << endl; }//新增eat方法void eat() { cout << "Dog like eat bone!"<<endl; }
};

当调用showAnimal方法时,如果其指向的时Dog方法,就调用eat方法,就可以通过dynamic_cast实现,如代码所示

void showAnimal(Animal* animal) {Dog* dog = static_cast<Dog*>(animal); // 尝试转换为 Dog*if (dog) {dog->eat();}else{animal->bark();}}

dynamic_cast<Dog*>(animal) 会检查 animal 是否真的指向 Dog 对象:

  • 如果是,返回 Dog*;
  • 如果不是,返回 nullptr(而不是崩溃或未定义行为)

在这里插入图片描述

我们之前也说了static_cast也可以进行基类和派生类的转换,但是这里是不会判断直接进行转换的,不管基类指针是不是指向Dog的派生类,都一律被转换成Dog的派生类;而dynamic_cast会进行判断,只有基类指针指向的是Dog类型的派生类时,才发生转换,否则返回nullptr。

在这里插入图片描述

最后,目前就先总结这些,后续项目中遇到了再添加内容。

http://www.dtcms.com/wzjs/218947.html

相关文章:

  • 企业网站的功能可分为前台和后台两个部分天津百度推广排名优化
  • 金方时代做网站怎么样b站推广网站2024mmm
  • 深圳做网站专业公司什么是互联网推广
  • 用java开发网站的步骤站内免费推广有哪些
  • 义乌购网站做代销怎么样舆情信息报送
  • 如何做淘客网站长沙网站优化效果
  • 谁做广东11彩票网站seo和sem推广
  • 网站图片代码怎么做的网络营销计划书怎么写
  • 商河 网站建设合川网站建设
  • 制作网站的模板大金seo
  • 网站整体运营思路重庆网络推广
  • 自己怎样做网站文章关键词内链google开户
  • 郑州网站建设哪家百度推广app怎么收费
  • 网站的功能测试怎么做的百度关键词推广价格查询
  • 网页设计与制作课程代码seo营销
  • 轻抖云网络营销推广广东seo网站优化公司
  • 网站关键词优化工具网络营销就是seo正确吗
  • 购物网站如何备案seo搜索是什么
  • 东莞专业做网站的公司搜索引擎营销的优缺点及案例
  • 静态旅游网站毕业论文东莞网站建设方案外包
  • 企业网站建设的一般要素有千博企业网站管理系统
  • 软件公司做网站吗百度指数下载app
  • 温江做网站自己怎么做引流推广
  • 学校英文网站建设公司网站如何制作
  • 海外推广渠道有哪些搜索引擎优化的基本原理
  • 建网站要学哪些软件怎么在网上做广告宣传
  • 怎么用花生壳做网站公司网站建设平台
  • 超炫的网站模板百度网页推广
  • 廊坊哪里有制作手机网站的优化优化
  • 做农业网站怎么赚钱seo基础培训教程