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

html5移动网站制作教程爱廷玖达泊西汀

html5移动网站制作教程,爱廷玖达泊西汀,在线视频播放网站建设,北京设计网站建设今天看见一道面试题&#xff0c;比较有意思&#xff0c;这一分享出来&#xff1a; 1.下面程序能编译通过吗&#xff1f; 2.下面程序会崩溃吗&#xff1f;在哪里崩溃 class A {public:void PrintA(){cout<<_a<<endl;}void Show(){cout<<"Show()"&…

今天看见一道面试题,比较有意思,这一分享出来:

1.下面程序能编译通过吗?
2.下面程序会崩溃吗?在哪里崩溃

class A
{public:void PrintA(){cout<<_a<<endl;}void Show(){cout<<"Show()"<<endl;}private:int _a;
};
int main()
{A* p = nullptr;p->PrintA();p->Show();
}

这道题是对C++语法基础的考察,主要考察我们对于this指针和空指针的理解掌握。

在解答之前,我们先对这两个知识点复习一下:

  1. this指针
  • this指针类型:类的类型 *const
  • this指针本质上其实是一个成员函数的形参,是对象调用成员函数时,将对象地址作为实参传递给this形参。所以对象中不存储this指针。
  • this指针是成员函数第一个隐含的指针形参,一般情况由编译器通过ecx寄存器自动传递,不需要用户传递
    在这里插入图片描述

  1. 空指针
    当我们初始化一个空指针之后,比如
int *a = nullptr;

此时空指针会造成内存泄漏?显然不会,当我企图对空指针指向空间内的数据时,此时才会造成野指针错误,简单来说,就是对空指针的解引用是不能接受的。


此时,我们可以解答这题了:

由于我们将A实例化为一个空指针对象,所以此时this指向该对象,也为空指针.(原因在于this是成员函数的第一个形参,类对象指针需要作为实参被隐式传递给形参)

之前我们说过,只要不对空指针进行解引用就不会造成错误,那么答案很简单,PrintA函数试图访问了成员变量,对A对象空间进行了访问,会报错;Show函数没有对this指针解引用,只是打印了一些信息,所以不会造成错误。

当然,这里补充一点,一个类对象只存储其成员变量,而不存储成员函数,否则对于一个类实例N次,会需要存储N次同样的成员函数,这显然是不合理的设计,因此,成员函数被统一存储在公共代码段,那么调用成员函数,并不会访问p指向的空间,

class A
{public:void PrintA(A* this){cout<<(*this)._a<<endl;}void Show(A *this){cout<<"Show()"<<endl;}private:int _a;
};
int main()
{A* p = nullptr;p->PrintA(p);p->Show(p);
}
http://www.khdw.cn/news/66275.html

相关文章:

  • 可以做动态影集的网站中国关键词官网
  • 网站开发分层微信推广方式有哪些
  • 网站开发快递百度收录提交入口地址
  • 江苏国智建设有限公司网站伟哥seo博客
  • 文昌网站 做炸饺子企业网站模板 免费
  • 做网站总结作文获取排名
  • 网站轮播广告温州seo网站推广
  • 如何做影视网站太原seo管理
  • 建筑工程网是什么网站代写
  • 给别人做网站赚钱独立站怎么搭建
  • 网页制作教程dw广州关键词优化外包
  • 网站建设app开发小程序开发江苏建站
  • 网站开发编辑器获客软件排名前十名
  • 乐清建设网站公司百度应用商店app
  • 个人网页制作教程与步骤搜索排名优化软件
  • 如何让搜索引擎快速收录网站新网站推广方案
  • 西安互联网网站搭建公司排名百度推广费用多少
  • 网站后台账号密码获取国外搜索引擎大全不屏蔽
  • 网站做一半能退吗短视频推广平台有哪些
  • 做网站如何防止被抄袭免费b站推广网站在线
  • 动态做网站百度推广助手电脑版
  • 记事本做网站报告西地那非片说明书
  • 做qq空间网站厦门seo推广外包
  • 网络开发公司是干什么的seo查询站长工具
  • 网站备案填写电话商务软文写作范文200字
  • 用ps做班级网站营销型网站seo
  • 网站空间域名购买qq群推广拉人
  • wordpress uc点赞seo快速工具
  • h5开源网站模板网站服务器多少钱一年
  • 万网 网站建设seo软件服务