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

网站流量是怎么计算的网络广告是什么

网站流量是怎么计算的,网络广告是什么,有用axure做网站的吗,苏州注册公司网上核名类型转换 c语言中的类型转换C的类型转换static_castreinterpret_castconst_castdynamic_cast c语言中的类型转换 在C语言中我们经常会遇到类型转化的问题,主要分为两种:显式类型转换和隐式类型转换。 显式类型转换:就是程序员使用强制类型转…

类型转换

  • c语言中的类型转换
  • C++的类型转换
    • static_cast
    • reinterpret_cast
    • const_cast
    • dynamic_cast

c语言中的类型转换

在C语言中我们经常会遇到类型转化的问题,主要分为两种:显式类型转换和隐式类型转换。
显式类型转换:就是程序员使用强制类型转化的方式,显式的进行类型转换

int a = 1;
double b = (int)a;

隐式类型转换:没有使用类型转换标志,由编译器自动根据类型转换为合适的类型,在编译阶段自动进行的,能转就转,不能转就编译失败。

int a = 1;
double b = a;

无论是显式转换还是隐式转换,所有的转换形式都是以一种相同的形式书写,这样容易发生错误转换而无法跟踪。

C++的类型转换

由此 C++提出了四种强制类型转换的操作符,目的是为了加强类型转换的可视性,分别为static_cast,reinterpret_cast,const_cast,dynamic_cast

static_cast

和C语言中的隐式类型转换是一样的,比如我们将int类型转换为float类型,或者double转换为int类型,这类我们在C语言中不需要特意写出转换类型的,可以直接用static_cast,让编译器去自动进行类型转换。

主要用于同类型转换,不能用于两个不相关的类型进行类型转换。

int main()
{int a = 1;//这个写法就是让编译器自动将a的值转换为double类型,然后赋给bdouble b = static_cast<int>(a);//这样就是两个不相关类型进行转换,使用static_cast会报错int* p = static_cast<int*>(a);return 0;
}

reinterpret_cast

主要用于对类型进行重新解释,例如int类型的数值,我们需要解释为地址类型

int main()
{//这样写是不对的,因为reinterpret_cast是用于重新解释类型的,double和int类型还是相关类型double a = 1.33333;int b = reinterpret_cast<int>(a);//需要这样写,int类型和地址类型不相关,使用reinterpret_cast进行类型的重新解释int a = 0xff6753;int* p = reinterpret_cast<int*>(a);
}

const_cast

作用是删除const变量的常属性,让非const类型的引用可以去引用const类型的变量

int main()
{const int a = 10;int& b = a;//报错,因为b是一个非const引用类型,不能引用const类型int& b = const_cast<int&>(a);//const_cast必须传入指针类型或者引用类型b = 20;//此时b可以引用a了,但是输入发现a=10,b=20;cout << a << " " << b << endl;
}

常规思路来说,b引用a,那么b的值修改后,a的值也应该跟着变才对,这里为什么就不是了呢?

根本原因是:如果一个值已经被赋予了const属性,编译器在访问其值的时候,便不会访问其具体地址上的内存,而是会事先用一块空间专门存这些常量,等到访问的时候直接输出常量。编译器是不会考虑const也会被修改的情况的,所以输出a的值依然为10。

那么,可以想象到,变量a对应内存地址的值实际上已经被修改为20了,只是编译器并没有从通过地址从内存中读取;我们可以使用volatile关键字对编译器进行强制设定,让编译器每次读取数值的时候都是通过地址从内存中读取。

int main()
{volatile const int a = 10;int& b = a;//报错,因为b是一个非const引用类型,不能引用const类型int& b = const_cast<int&>(a);//const_cast必须传入指针类型或者引用类型b = 20;//输入发现a=20,b=20;cout << a << " " << b << endl;
}

dynamic_cast

动态转换,用于将父类对象的指针或引用转换为子类对象的指针或引用

这里我们需要强调类对象与类对象之间的转换分为两种:
向上转型:子类对象指针或引用—>父类对象指针或引用(天然满足,也就是常说的"切片"操作)
向下转型:父类对象指针或引用—>子类对象指针或引用(需要用dynamic_cast转换)

注意:dynamic_cast 只能用于父类含有虚函数的类,转换前编译器会检查能否转换成功,如果不能则返回0

#include<iostream>
using namespace std;class A
{
public:virtual void F() {}
};
class B : public A
{};void fun(A* pa) {B* pb = dynamic_cast<B*>(pa);cout << pb << endl;
}
int main()
{A a;B b;fun(&a);return 0;
}

如果A类没有虚函数,那么编译器会报错
在这里插入图片描述

http://www.hkea.cn/news/858642/

相关文章:

  • 做网站之前需要准备什么企业网络营销策划案
  • dreamweaver动态网站开发与设计教程内容怎么在百度上面打广告
  • 济南网站搜索优化深圳网络推广招聘
  • 网站 色彩武汉it培训机构排名前十
  • 怎么做资源网站网络培训中心
  • 服装品牌网站建设营销网站建设选择原则
  • 乌鲁木齐新市网站建设有哪些网络营销公司
  • 网站的后台怎么做企业网络规划设计方案
  • 做网站文字字号大小企业网站设计要求
  • ae有么有做gif的网站品牌推广方案范文
  • apicloud官网下载seo关键词优化排名公司
  • 上海网站制作福州百度关键字优化精灵
  • 做uml图网站百度账号快速注册入口
  • 广西梧州南京 seo 价格
  • 网站警察备案seo关键词优化平台
  • 网站开发设计实训 报告惠州网站建设
  • 网站开发的原理山西免费网站关键词优化排名
  • 石家庄网站建设全包免费推广网站2024
  • 阿里云网站备案时间无锡seo网站管理
  • 景点介绍网站模板重庆百度关键词推广
  • 做亚马逊网站费用吗曲靖新闻今日头条
  • bing 网站管理员2023今日新闻头条
  • 深圳市做网站前十强百度一下搜索网页
  • 做执法设备有哪些网站国家免费培训学校
  • 顺德乐从有做阿里巴巴的网站吗杭州网站设计
  • 做英文网站 用阿里服务器行吗b2b网站推广排名
  • 搭建网站做淘宝客网赌怎么推广拉客户
  • 网站建设前台与后台最新技术2021最新免费的推广引流软件
  • 做网站基本语言淘宝如何提升关键词排名
  • wordpress怎样分类目录添加标签seo文章范文