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

中国十大知名网站公司注册网站查询

中国十大知名网站,公司注册网站查询,网站wordpress,菏泽网站建设便宜臻动传媒今天遇到一道不错的题目,主要讲了c11对nullptr的特性。 首先:nullptr 是C11引入的一个关键字,用于表示“空指针常量”,它是类型std::nullptr_t的唯一值。nullptr 的引入解决了C语言风格的空指针字面量(如NULL或0&#…

今天遇到一道不错的题目,主要讲了c++11对nullptr的特性。
首先:nullptr 是C++11引入的一个关键字,用于表示“空指针常量”,它是类型std::nullptr_t的唯一值。nullptr 的引入解决了C语言风格的空指针字面量(如NULL或0)在C++中的一些问题和不一致性,提供了更安全、更清晰的空指针表示。

示例1:

#include<iostream>
struct A
{void func();    
};
void A:: func()
{std::cout<<" hello world"<<std::endl;
}
int main()
{A * a = nullptr;a->func();return 0;
}

请问上面的代码编译怎怎样?运行怎样?
答案:正常编译,运行输出 hello world。
为什么呢?
这段代码中,将指针a初始化为nullptr,并在之后调用了a的成员函数func()。正常情况下,这样的代码会导致空指针解引用错误,因为a指向了空的内存地址。
然而,在这个特定情况下,虽然a是空指针,但是func()函数在执行时并没有使用到a指针的任何成员变量或函数,所以没有导致错误。因此,代码能够正常执行并输出"hello world"。
示例2:

#include<iostream>class A
{void func();    
};void A:: func()
{std::cout<<" hello world"<<std::endl;
}int main()
{A * a = nullptr;a->func();return 0;
}

我们将struct改为class会怎样呢?因为默认类默认是私有的,所以编译就会报错。只要我们将类型改为公有就可以正常编译且运行了
示例3:

在这里插入#include<iostream>class A
{public:virtual void func();    
};void A:: func()
{std::cout<<" hello world"<<std::endl;
}int main()
{A * a = nullptr;a->func();return 0;
}
代码片

那么这样呢?将func声明未虚函数呢?能否编译成功?运行?
答案:可以编译,运行的时候会core dumped。原因是正是出现在了虚函数上面。
当我们定义一个类的成员函数为虚函数时,会通过虚函数表和函数指针维护这个虚函数。

当我们通过基类指针或引用调用虚函数时,实际上是通过以下步骤进行的:
1、获取对象的虚函数指针。
2、通过虚函数指针找到对应的虚函数表。
3、在虚函数表中查找对应虚函数的函数指针。
4、调用找到的函数指针所指向的函数。

回归到这个题。
func()是一个虚函数,虚函数机制只会在你尝试通过基类指针调用派生类中的函数时生效,但它不能防止你对空指针进行操作。

在你尝试调用a->func()时,编译器会尝试获取a指向的对象的虚函数表,然后从虚函数表中查找func()函数的地址并调用它。但是,因为a是nullptr,所以编译器无法获取到虚函数表,于是导致了崩溃。

http://www.yayakq.cn/news/335341/

相关文章:

  • 做物流的可以在那些网站找客户端中山市建设局投诉网站
  • 网站如何做流量网站开发多少钱
  • 购买空间网站哪个好河北省和城乡建设厅网站
  • 做淘宝需要知道什么网站吗wordpress 多站点 子目录
  • 网站织梦后台一片白电商网站流程
  • 恩平市网站建设昆明手机app开发
  • 网站建设与管理ppt模板关于网站的毕业设计
  • 一个电商网站开发要多久上海 高端 网站建设
  • 网站开发 改进企业网站建设的层次
  • 网站开发需要客户做什么建设企业网站的企业
  • 上海建站资讯wordpress张戈
  • 舞钢市城市建设局网站沈阳关键词优化价格
  • 保定市建设计网站大学生网站建设规划书
  • 有什么比较好的画册设计网站高端网站制作网址
  • 徐州如何提高网站建设地方生活门户网站名称
  • 长沙3合1网站建设价格wordpress怎么迁移
  • 电子商务网站建设的心得体会京东商城网站建设教程
  • dede网站建设流程查营业执照怎么查询
  • 设计一个手机网站平面多少钱新建站点的步骤
  • 签订网站建设协议 注意事项为什么公司的网站打不开
  • 电商在线设计网站微信公众号 wordpress
  • 2018年做淘宝客网站需要备案嘛大数据技术主要学什么
  • 万联芯城网站建设广州天河区网站设计公司
  • 网站建设 手机appneotv
  • 建设厅网站查询nginx安装wordpress失败
  • 网站建设策划方织梦网站访问量统计代码
  • 攀枝花建设规划网站福州模板建站定制网站
  • 网站建设怎么样做公司网站500元
  • 设计师专用网站怎么做二维码进入公司网站
  • 30_10_郑州网站制作全国手工活外发加工平台