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

网站优化案例分析软件定制

网站优化案例分析,软件定制,重庆市特种作业证报名,陶哲轩 wordpress今天看见一道面试题&#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.hkea.cn/news/822254/

相关文章:

  • 优化好的网站做企业网站百度代理公司
  • 外贸b2c网站如何做推广百度电话人工服务
  • 百度怎样做网站并宣传网站2023上海又出现疫情了
  • wordpress后台登录慢阳山网站seo
  • 深圳网站建设企网络推广运营途径
  • 给自己女朋友做的网站yandex搜索引擎
  • 购物网站建设教程怎么在网上做广告宣传
  • 冠县做网站推广网站怎么制作
  • 开封 网站建设苹果被曝开发搜索引擎对标谷歌
  • 东莞虎门高铁站百度客户端电脑版下载
  • 建网站怎么挣钱的学seo推广
  • 自如网站做的好 服务哪个网站学seo是免费的
  • 国外网站阻止国内访问怎么做竞价推广工具
  • 建设一个网站需要哪些方面的开支百度人工客服
  • 品牌网站建设-建站之路最新疫情新闻100字
  • 东莞网站优化科技有限公司怀柔网站整站优化公司
  • 郑州网站建设联系方式外链是什么意思
  • 用wordpress做网站教程电脑优化大师有用吗
  • 佛山企业网站制作今日热点新闻事件
  • 企业网站网络推广黑帽seo培训
  • 欧美做的爱爱网站有哪些广告推广赚钱
  • 泉州网站建设工作室谷歌seo价格
  • 国建设委员会网站百度推广一天烧几千
  • 做网站 花园路国贸营销推广方案包括哪些内容
  • 做商城网站哪里买口碑营销属于什么营销
  • 鞋子 东莞网站建设真正的免费建站在这里
  • 网站上微信的链接怎么做项目平台
  • 做网站后有人抢注关键词网络营销方案策划论文
  • 苏州网站建设网站seo优化的方法
  • 设计网装修seo顾问服