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

做网站接广告赚钱吗新闻发布最新新闻

做网站接广告赚钱吗,新闻发布最新新闻,网站中的幻灯片ie6显示 ie7如何兼容,国内做网站1.什么是类型转换 在传统C语言中,由强制类型转换和隐式类型转换,隐式类型转换,编译器在在编译阶段自动处理,能转换则转换,强制类型转换由用户自己转换。 缺陷: 转换的可视性比较差,所有的转换形…

1.什么是类型转换

在传统C语言中,由强制类型转换和隐式类型转换,隐式类型转换,编译器在在编译阶段自动处理,能转换则转换,强制类型转换由用户自己转换。

缺陷:

  • 转换的可视性比较差,所有的转换形式都是以一种相同形式书写,难以跟踪错误的转换
  • 隐式类型转化有些情况下可能会出问题:比如数据精度丢失
  • 显式类型转换将所有情况混合在一起,代码不够清晰
     

比如:

    int a = 100;
    long long b = a;//隐式类型转换
    char c = b;//隐式类型转换
    size_t d = a;//隐式类型转换
    cout << a <<" " <<" " << b <<" " << c <<" " << d << endl;
    //强制类型转换
    double e = (double)a;
    float f = (double)e;
    cout << e << " " << f << endl;

在C++中,也可以使用C语言的转换方式,但在C++中,有自己的转换方式,

标准C++为了加强类型转换的可视性,引入了四种命名的强制类型转换操作符:
static_cast、reinterpret_cast、const_cast、dynamic_cast

2.不同操作符使用场景

2.1 static_cast使用

在static_cast中,它的使用方法相对于C语言中的隐式类型转换,只能转换两种类型比较接近的,不能用于不相干类型的转换。

比如:

    int a = 100;
    char b= static_cast<char>(a);
    //char* c = static_cast<char*>(a);//无法转换
    cout << b << endl;

2.2 reinterpret_cast使用

reinterpret_cast操作符通常为操作数的位模式提供较低层次的重新解释,强制转换两种不相关的类型,即一种类型转换为另一种不相干的类型,

比如:

    int a = 100;
    char b= static_cast<char>(a);
    char* c = static_cast<char>(b);//无法转换

    char* c = reinterpret_cast<char*>(b);
    printf("%c\n", *(&c));

2.3 const_cast使用

const_cast最常用的用途就是删除变量的const属性,方便赋值,但是需要使用volatile修饰加了const的变量。

比如:

     volatile const int a = 10;
     int* p  =const_cast<int*>(&a);
     p = (int*)&a;
    *p = 20;
    cout << *p <<" " << a << endl;

2.4 dynamic_cast使用方法

dynamic_cast用于将一个父类对象的指针/引用转换为子类对象的指针或引用(动态转换)

向上转型:子类对象指针/引用->父类指针/引用(不需要转换,赋值兼容规则)

向下转型:父类对象指针/引用->子类指针/引用(用dynamic_cast转型是安全的)
注意:
1. dynamic_cast只能用于父类含有虚函数的类
2. dynamic_cast会先检查是否能转换成功,能成功则转换,不能则返回0
比如:

class A
{
public:
    virtual void f() {}
};

class B : public A
{};

//A*指针有可能指向父类,也有可能指向子类
void fun(A* pa)
{
    // dynamic_cast会先检查是否能转换成功,能成功则转换,不能则返回

    // 如果pa是指向子类,那么可以转换,转换表达式返回正确的地址

    // 如果pa是指向父类,那么不能转换,转换表达式返回nullptr

    B* pb1 = static_cast<B*>(pa);
    B* pb2 = dynamic_cast<B*>(pa);//返回空
    cout << "pb1:" << pb1 << endl;

    cout << "pb2:" << pb2 << endl;
}
int main()
{

     //父类对象无论如何都不能转换为子类
    A a;
    B b;
    fun(&a);
    fun(&b);
    return 0;
}

 注意
强制类型转换关闭或挂起了正常的类型检查,每次使用强制类型转换前,程序员应该仔细考虑是
否还有其他不同的方法达到同一目的,如果非强制类型转换不可,则应限制强制转换值的作用
域,以减少发生错误的机会。强烈建议:避免使用强制类型转换。

http://www.15wanjia.com/news/35380.html

相关文章:

  • 1688域名网站优化网站的方法
  • 做那个网站比较好seo平台有哪些
  • 网站开发 华景新城网站结构有哪几种
  • 深圳响应式网站制作宁波网络推广产品服务
  • 做样子的网站友情链接名词解释
  • 江苏专业做网站的公司哪家好外链发布的平台最好是
  • 上海网站开发制抖音代运营大概多少钱一个月
  • 南山企业网站建设巨量关键词搜索查询
  • 怎么样做网站赚钱吗今天晚上19点新闻联播直播回放
  • 陕西省交通建设集团西长分公司网站seo整体优化
  • 0基础学设计该从何开始百度怎么优化网站关键词
  • 网站建设市场前景宁波优化推广找哪家
  • 建大型网站要多少钱优化防疫政策
  • 优秀的网站seo内部优化具体做什么
  • 哪些网站可以做百科参考资料株洲seo
  • 创业网站建设规划书朋友圈信息流广告投放价格
  • 介绍个人网站的ppt怎么做怎样推广网站
  • php网站用的是什么语言写的关键词优化公司哪家好
  • 做汽车拆解视频网站手机版谷歌浏览器入口
  • 南昌有哪些企业网站网站优化方案案例
  • 技术先进的网站建设公司seo搜索工具栏
  • 哈尔滨哪里做网站好b站推广是什么意思
  • 做娱乐自媒体有哪些网站可以推荐sem代运营托管公司
  • 做旅游网站的原因推广方案万能模板
  • 广州手机网站建设报价顶尖文案网站
  • 苏州博客关键词优化seo网络优化是什么意思
  • 赣州销售网站近几天的新闻摘抄
  • 手机做网站价格seo工程师招聘
  • 成品app软件大全临沂网站建设优化
  • 公司变更法人需要多少费用八宿县网站seo优化排名