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

wordpress 企业网站无锡做网站多少钱

wordpress 企业网站,无锡做网站多少钱,新闻类网站开发,工装设计效果图网站用处: typeid()函数主要用来获取对应类型或者变量的类型信息#xff0c;其返回一个std::type_info的对象#xff0c;这个对象中存放了对应类型的具体信息。 所以typeid()函数就是获取一个type_info的类型#xff0c;然后可以通过此类型来获取到相应的类型信息。 type_info的…用处: typeid()函数主要用来获取对应类型或者变量的类型信息其返回一个std::type_info的对象这个对象中存放了对应类型的具体信息。 所以typeid()函数就是获取一个type_info的类型然后可以通过此类型来获取到相应的类型信息。 type_info的声明  class type_info { public:virtual ~type_info();bool operator(const type_info rhs) const;bool operator!(const type_info rhs) const;bool before(const type_info rhs) const;const char* name() const;private:// 私有构造函数、复制构造函数和赋值运算符以防止直接创建和复制type_info(const type_info);type_info operator(const type_info); }; 这个类中你会发现内部有包含很多关于类型信息的操作函数。 1. name();  // 可以获取到对应类型信息的名字。  2. 重载了比较运算符可以对获取到的类型信息进行比较。  3. 主要的是其赋值构造函数和有参构造函数都设置为了私有的在别的编译器实现可能会使用delete删除掉也就意味着我们没有办法使用type_info类定义对象所以只有使用typeid才能够获取type_info类型的对象来获取对应的信息。   注意:   type_info类型和typeid的实现是基于编译器的也就是说c只是提出了基于语法的层面对于具体的实现不同的编译器是不一样的但是用法都是类似的。 typeid的具体使用:  首先说明typeid的实现一般是基于虚函数的当然是我们自己定义的类型所以建议都使用虚函数。 原因是因为基于c的多态虚函数会保存一个虚函数表的指针虚函数表中会存储一个type_info的类型信息但是至于存储在哪个位置这是由编译器决定的不同的编译器不一样我们实际使用的时候没有必要关心。typeid就是借助虚函数表的机制可以判断出多态下父类指针指向的具体实际类型。 具体其实如何得知的我猜测应该是当父类的指针指向子类对象实现多态的时候其对应父类的type_info信息的类型就会修改为其指向的子类类型。(不一定正确) 其实原因就是在多态的实现过程中可以获取到对应指针指向的实际类型。 定义一下三个类进行测试: class People { public:People() default;virtual void write() {std::cout People\n;} };class Man : public People { public:Man() default;virtual void write() override {std::cout Man\n;} };class Woman : public People { public:Woman() default;virtual void write() override {std::cout Woman\n;} };int main(void) {People* p1 new People;Man* m1 new Man;People* p2 m1; // 使用多态std::cout typeid(p1).name() std::endl; // class People*std::cout typeid(m1).name() std::endl; // class Man*std::cout typeid(p2).name() std::endl; // class People*std::cout typeid(*p2).name() std::endl; // class Manreturn 0; } 对应的输出结果已经在函数调用之后了记住typeid函数返回一个type_info类型的对象但是我们不能使用这样的类型去接收因为外部不可定义其对象所以获取type_info类型只有通过typeid所以获取之后直接使用这个对象。 代码中调用name()获取具体对象的类型。 仔细看最后一个打印信息p2是一个父类指针对象所以其类型是父类指针类型但是*p2则不一样由于多态的实现*p2就是p2指针实际指向的类型此处为Man类型所以我们使用typeid检测之后得到的就是Man类型的数据。 也可以用于一般类型:  std::cout typeid(int) std::endl; // int 类型进行比较 if(typeid(int) typeif(float)){}else{} 我们可以直接使用比较两个类型是否相同相同执行一个分支否则执行另外一个分支实现运行时类型检查不同的类型情况进行不用的代码。 dynamic_cast借助typeid进行运行时类型检测  dynamic_cast是c新增的类型强制转换其主要用于继承系列的类型转换成功返回转换后的指针失败返回NULL。 其就是根据typeid获取对应的变量的实际类型然后根据继承树来判断是否可以转换子类转父类没问题父类转子类会返回NULL。
http://www.hkea.cn/news/14558578/

相关文章:

  • wordpress访问3秒以上湛江市seo网站设计哪里好
  • it公司做网站用什么软件图书建设网站
  • 葫芦岛市建设局网站百度怎么直接访问网址
  • 在阿里云做的网站怎么进后台唐山网站建设多少钱
  • 西安网站建设陕icpseo推广教程视频
  • 聊城正规网站建设公司电话seo怎么做教程
  • 网站ip地址 a记录电脑培训网
  • 国外文本排版设计网站腾讯企点是干嘛的
  • 北京网站主题制作图片点击就能跳转网站怎么做的
  • 龙采网站建设资源分享平台然后搭建网站
  • 长沙做网站建设价格青海网站制作的公司
  • 罗湖网站建设-信科网络宛城区建网站
  • phpnow 新建网站做网站交易装备可以么
  • 手机建站编写网站策划方案
  • 网站开发的职业目标1g1m wordpress
  • 大型国企网站建设费用广告设计方案
  • 网站的推广等内容h5游戏网站入口
  • 苏州网站建设2万起如何做vip微信电影网站
  • 哪些网站做商标注册创建一个自己的公司英语
  • 资阳建设机械网站c2c电子商务平台有哪些?
  • 官方网站建设报价表南京怎样做网站
  • 网站绑定别名好吗wordpress 显示页面
  • 大连建设网站哪家好逆冬seo
  • 电子商务网站设计与网络营销实验国内空间没备案可以打开网站吗
  • 领航 网站设计网站平台建设需要多少钱
  • 奥远网站建设流程济阳做网站多少钱
  • 云加速应用于html网站福州企业建站系统
  • 大型网站建设兴田德润实惠图片网站 代码
  • aspx网站开发2022互联网+创新创业项目
  • 大气企业网站欣赏网站建设方案书是什么