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

一级a做片性视频.网站在线观看如何自己开发软件app

一级a做片性视频.网站在线观看,如何自己开发软件app,搜索引擎优化的办法有哪些,花西子网络营销案例分析前言 C中对象模型和this指针是面向对象编程中的重要概念。对象模型描述了对象在内存中的布局和行为#xff0c;包括成员变量、成员函数的存储方式和访问权限。this指针是一个隐含的指针#xff0c;指向当前对象的地址#xff0c;用于在成员函数中引用当前对象的成员变量和成…前言 C中对象模型和this指针是面向对象编程中的重要概念。对象模型描述了对象在内存中的布局和行为包括成员变量、成员函数的存储方式和访问权限。this指针是一个隐含的指针指向当前对象的地址用于在成员函数中引用当前对象的成员变量和成员函数。对象模型和this指针的理解和应用对于深入理解C的面向对象特性和实现细节至关重要。 提出问题 每一个非静态成员函数只会诞生一份函数实例也就是说多个同类型的对象会共用一块代码。那么问题是这一块代码是如何区分哪个对象调用自己的呢 C通过提供特殊的对象指针this指针解决上述问题。this指针指向被调用的成员函数所属的对象。this指针是隐含每一个非静态成员函数内的一种指针this指针不需要定义直接使用即可。 this指针的引出 引用自【精选】[ C ] 一篇带你了解C中隐藏的this指针_c this-CSDN博客 那我们首先来看一下这段代码会输出什么结果呢? #includeiostream using namespace std;class Date { public:void Display(){cout _year - _month - _day endl;}void SetDate(int year, int month, int day){_year year;_month month;_day day;} private:int _year; // 年int _month; // 月int _day; // 日 }; int main() {Date d1, d2;d1.SetDate(2022, 5, 11);d2.SetDate(2022, 5, 12);d1.Display(); // 2022-5-11d2.Display(); // 2022-5-12return 0; } 输出结果  2022-5-11 2022-5-12  分析 我们首先可以通过汇编来看看d1,d2调用的函数是否相同。 我们可以发现最终打印的时候调用的Display(0A1500h)是同一个函数 那么既然d1,d2调用的都是同一个函数编译器如何知道d1是2022-5-11d2是2022-5-12呢Display都访问的 _year_month_day。而且去公共代码区访问的Display()这是为什么呢 这是因为C在这段代码中做了手脚C在这里增加了一个this指针这里是因为 Display 会增加一个 this 形参。C编译器给每个 “非静态的成员函数“ 增加了一个隐藏的指针参数让该指针指向当前对象(函数运行时调用该函数的对象)在函数体中所有成员变量的操作都是通过该指针去访问。只不过所有的操作对用户是隐藏的即用户不需要来传递编译器自动完成。 在调用的时候也传的是各自的地址这样就十分清晰明了了。这就是隐含的this指针。 注意我们不能显示的写出来因为他是隐含的我们不能抢了编译器的活。但是我们可以直接在类里面用。 将this指针存储的地址打印出来与类实例化后的对象地址作比较 #includeiostream using namespace std;class Date { public:void Display(){cout this endl;cout _year - _month - _day endl;}void SetDate(int year, int month, int day){_year year;_month month;_day day;} private:int _year; // 年int _month; // 月int _day; // 日 }; int main() {Date d1, d2;cout d1的地址为 d1 endl;cout d2的地址为 d2 endl;d1.SetDate(2023, 1, 1);d2.SetDate(2023, 1, 2);cout d1调用Display函数时输出结果 endl;d1.Display();cout d2调用Display函数时输出结果 endl;d2.Display(); return 0; } 输出结果  this指针的用途 引用自【C漂流记】C对象模型和this指针-CSDN博客 当形参和成员变量同名时可用this指针来区分在类的非静态成员函数中返回对象本身可使用return *this #includeiostream using namespace std; class Person { public:Person(int age){//1、当形参和成员变量同名时可用this指针来区分this-age age;}Person PersonAddPerson(Person p){this-age p.age;//返回对象本身return *this;}int age; };void test01() {Person p1(10);cout p1.age p1.age endl;Person p2(10);p2.PersonAddPerson(p1).PersonAddPerson(p1).PersonAddPerson(p1);cout p2.age p2.age endl; }int main() {test01();system(pause);return 0; }输出结果  分析 这段代码定义了一个Person类其中包含一个构造函数和一个成员函数PersonAddPerson。test01函数创建了两个Person对象p1和p2并测试了PersonAddPerson函数的功能。 在构造函数中使用了this指针来区分形参和成员变量。this指针指向当前对象可以通过this-age来访问成员变量age。 PersonAddPerson函数接受一个Person对象作为参数将该对象的age加到当前对象的age上并返回当前对象的引用。 在test01函数中首先创建了一个age为10的Person对象p1并输出其age值。然后创建了另一个age为10的Person对象p2并连续三次调用PersonAddPerson函数每次传入p1作为参数。最后输出p2的age值。 由于PersonAddPerson函数返回的是当前对象的引用所以可以连续调用该函数。因此p2的age值会依次增加30最终输出为40。 空指针访问成员函数 C中空指针也是可以调用成员函数的但是也要注意有没有用到this指针。如果用到this指针需要加以判断this指针是否为NULL从而保证代码的鲁棒性。 示例 #includeiostream using namespace std;//空指针访问成员函数 class Person { public:void ShowClassName() {cout 我是Person类! endl;}void ShowPerson() {if (this NULL) {return;}cout mAge endl;}public:int mAge; };void test01() {Person* p NULL;p-ShowClassName(); //空指针可以调用成员函数p-ShowPerson(); //但是如果成员函数中用到了this指针就不可以了 }int main() {test01();system(pause);return 0; }上述代码输出 我是Person类 分析 这段代码定义了一个Person类其中包含两个成员函数ShowClassName和ShowPerson以及一个成员变量mAge。test01函数创建了一个空指针p并尝试调用p的成员函数。 在C中空指针是指向任何对象的指针因此可以通过空指针调用成员函数。在ShowClassName函数中没有使用this指针所以可以正常调用输出结果为我是Person类!。 但是在ShowPerson函数中使用了this指针来访问成员变量mAge。当空指针调用该函数时this指针为NULL因此访问成员变量时会出现错误。为了避免空指针访问可以在函数体内通过判断this是否为NULL来提前返回不执行后续代码。 总结空指针可以调用成员函数但是如果成员函数中使用了this指针来访问成员变量需要注意空指针的处理避免出现错误。 若将ShowPerson()函数中的if判断this指针是否为NULL语句去掉则会抛出异常如下图所示。 关于this指针的总结 关于this指针有以下几点总结 1this指针指向当前对象可以访问当前对象的所有成员变量。包括private、protected、public。 2this指针是const指针一切企图修改该指针的操作如赋值改变指向、增减都是不允许的 3this指针只有在成员函数中才有定义。因此在创建一个对象后也不能通过对象使用this指针。所以我们也无法知道一个对象的this指针的位置只有在成员函数里才有this指针的位置。当然在成员函数里你是可以知道this指针的位置的可以this获得)也可以直接使用的。 4只有创建对象后this指针才有意义。 5static静态成员函数不能使用this指针。原因静态成员函数属于类而不属于某个对象所以static静态成员函数压根就没有this指针。 6this在成员函数的开始执行前构造的在成员函数的执行结束后清除。至于如何清除的由编译器实现程序员不关心。this是通过函数参数的首参数来传递的。   部分参考自 https://blog.csdn.net/Goforyouqp/article/details/133470535 https://blog.csdn.net/tr_ainiyangyang/article/details/125638721 【精选】[ C ] 一篇带你了解C中隐藏的this指针_c this-CSDN博客
http://www.dnsts.com.cn/news/149798.html

相关文章:

  • 网站建设侵权wordpress栏目页调用内容
  • 深圳app开发公司排名seo外包顾问
  • wordpress网站做成app6学做网站可以赚钱吗
  • 自建网站的劣势做计划网站
  • 网站备案公司青岛网站seo
  • 北京建设网站公司网站和系统的哪个容易做
  • 台州网站建设慕枫wordpress视频显示控件
  • 营销型高端网站建设电子商务seo是什么意思
  • WordPress手机站插件成都网站建设公司有哪些
  • 凡科建站做的网站收录慢吗h5 做移动端网站
  • 公司网站的管理和维护建筑证书查询
  • 佛山cms建站网站里的做菠菜
  • 网站如何做免费推广千万不能 网站
  • 模板网站一天建好ppt模板在哪里找
  • c#网站开发模板沧州外贸公司
  • 网站多多太原网站建设全包
  • 辽宁建设厅查询网站管理公司网站一般做什么
  • 做甜品网站栏目wordpress更新需要连接ftp
  • 新手做视频网站不需要备案如何做网站
  • 天元建设集团网站做直播网站要什么证吗
  • 个体工商户经营范围做网站网站点击图片放大
  • 西电信息化建设处网站免费咨询矢量图
  • 境内境外网站区别做网站公证需要费用是多少
  • 软件开发都有哪些南宁网站建设seo
  • 十堰网站搜索优化价格wordpress登陆加快
  • 有微信公众号怎么做微网站WordPress设置评论通过
  • 做网站需要哪些东西和步骤东道设计公司logo
  • 网站建设选择什么模式郑州seo排名哪有
  • 网站备案是每年一次吗汽车网站建设的基本功能
  • 网站建设的静态网页作业宿州房产网