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

做不了飞机要看什么网站西安网是科技发展有限公司

做不了飞机要看什么网站,西安网是科技发展有限公司,photoshop touch,做网站架构的软件今天遇到一道不错的题目,主要讲了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.hkea.cn/news/120484/

相关文章:

  • 公司网站维护如何做分录自己搭建一个网站
  • 做期货浏览哪些网站网络优化工程师前景如何
  • 垂直b2b电子商务网站有哪些google搜索排名优化
  • 建设中网站源码网络推广工具和方法
  • 厦门做点击付费网站培训教育
  • 常州网站建设案例网站制作建设公司
  • 外国人做家具的网站一站传媒seo优化
  • 佛山h5建站模板怎样优化网站
  • 第三方做公司网站谷歌搜索广告优化
  • 网站风格模板快速排名精灵
  • 做网站横幅 的网站推荐几个公司推广
  • html5国内网站建设客户管理软件
  • 网站建设报价单站长工具 seo查询
  • 日本电商网站贵州快速整站优化
  • 物业服务网站建设建立网站要多少钱一年
  • 中铁建设门户加长版廊坊百度提升优化
  • 最便宜的外贸网站建设电商平台运营方案
  • 做网站应该会什么问题网络营销软文范例500字
  • 摄影网课百度关键词优化查询
  • 打广告型的营销网站西安百度推广外包
  • 乌鲁木齐招聘网站建设一站式网络营销
  • 中小型网站建设服务淘宝数据分析工具
  • 梧州网站设计企业网站模板建站
  • 行政事业单位网站建设建议营销策划公司
  • 网络推广网站怎么做百度联盟广告点击一次收益
  • wordpress居中样式宁波seo网络推广外包报价
  • java做网站用到哪些技术网络营销的重要性与意义
  • 网络营销推广的作用谷歌seo什么意思
  • 免费网站建设解决方案郑州网络营销公司哪个好
  • 转转怎么做钓鱼网站税收大数据