返回信息流我在一本书上看到如下代码
struct bign
{
int len, s[MAXN]; //lowest digit in s[0]
bign(){memset(s, 0, sizeof(s)); len = 0;}
bign operator = (const char *num)
{
int length = strlen(num);
for(int i = 0; i < len; i++){s[i] = num[length - 1 - i] - '0';}
return *this;
}
bign operator = (int num)
{
char t[MAXN];
sprintf(t, "%d", num);
*this = t;
return *this;
}
};
请问 = 函数中的this指针具体指的是什么呢?最后一个函数中char t[MAXN]不是局部变量吗?这样的话如果函数执行完毕后空间就释放了,*this=t,return *this不就指向不确定的内存了吗?
这是一条镜像帖。来源:北邮人论坛 / cpp / #75006同步于 2013/11/3
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖
关于结构体的this指针
wabyrlt
2013/11/3镜像同步6 回复
订阅后,新回复会通过你的通知中心匿名送达。
6 条回复
【 在 iFadeToBlack 的大作中提到: 】
: *this = t;
: 这一句调用的是另一个operator=
对的,这个我明白了;那么this指针究竟指的是什么?指由结构体定义的变量本身吗?
http://en.cppreference.com/w/cpp/language/this
【 在 wabyrlt 的大作中提到: 】
: 对的,这个我明白了;那么this指针究竟指的是什么?指由结构体定义的变量本身吗?
【 在 iFadeToBlack 的大作中提到: 】
: http://en.cppreference.com/w/cpp/language/this
:
holds a pointer to the class object from which the function was invoked
这句话点明白了,thx