如何解决使用“ this”指针的内存占用
有人可以告诉我,创建类的对象中的指针“ this”是否占用内存吗?
class Temp {
private:
Temp &operator=(const Temp &t) { return *this; }
}
解决方法
this
是正在调用其成员函数的对象的地址,并且不需要将其存储在任何地方。
通常通过将其值作为“隐藏”参数传递给成员函数来实现,因此它占用内存的方式与其他函数参数占用内存的方式相同。
“面向对象”代码
struct A
{
int f() { return this->x; }
int x;
};
int g()
{
A a;
return a.f();
}
通常将像以下“非面向对象”代码那样实现:
struct A
{
int x;
};
int Af(A* self)
{
return self->x;
}
int g()
{
A a;
return Af(&a);
}
,
不,“ this”本身已经是一个内存引用,因此它所占用的内存不会超过该对象已经拥有的内存。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。