C++ 面向对象模型 小知识点
2023-12-15 15:28:53
空类 大小
空类的 sizeof 结果是 1。原因:每个对象都应该在内存上有独一无二的地址,因此给空对象分配 1 个字节空间。
当定义了一个变量后,则类的大小为这个变量的大小。
类中 变量和函数是分开存储的。
静态成员变量,静态成员函数,成员函数,都不占用类的空间。
每一个非内联成员函数只会诞生一份函数实例.
this指针工作原理
类的多个对象会共用一块代码,类中的成员函数如何区分哪个对象调用自己的呢?
当一个对象被创建后,它的每一个成员函数都含有一个系统自动生成的隐含指针this,用以保存这个对象的地址.
this指针 指向 被调用的成员函数 所属的对象。
this指针并不是对象的一部分,不会影响sizeof(对象)的结果。
this指针是一种隐含指针,它隐含于每个类的非静态成员函数中。
静态成员函数内部没有this指针,静态成员函数不能操作非静态成员变量。
this指针的使用
当形参和成员变量同名时,可用 this 指针来区分
在类的非静态成员函数中返回对象本身,可使用 return *this;
空指针调用成员函数
现象
//空指针调用成员函数
Person *p = NULL;
p->show();
如果 show() 中没有使用成员属性 ,则不会报错, 否则会报错.
预防
在成员函数开头加上判断
if(this == NULL)
{
return;
}
文章来源:https://blog.csdn.net/CYS_2020/article/details/134986943
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!