【发布时间】:2014-06-03 15:12:10
【问题描述】:
我正在阅读“this”指针,我想我比原来更了解它,但我仍然需要澄清一下。所以,据我了解,如果你有
class Simple
{
private:
int m_nID;
public:
Simple(int nID)
{
SetID(nID);
}
void SetID(int nID) { m_nID = nID; }
int GetID() { return m_nID; }
};
SetID(int nID) 函数实际上在语义上转换为:
void SetID(Simple* const this, int nID) { this->m_nID = nID; }
在大多数情况下,一个类的所有成员函数都有一个this 指针,这是有道理的。但是如果你有一个不带参数的成员函数会发生什么呢?是否有“this”指针?如果是,它是否指向返回类型而不是参数类型?
【问题讨论】:
-
其实我相信我刚才已经证明了自己的愚蠢……
-
为什么,问题似乎没问题?
-
查看代码后,我意识到 C++ 添加的隐藏参数是指向类实例的指针,而不是参数。尽管如此,我想我的问题仍然存在。
-
@WorthyToast 试图准确地理解事物是如何工作的,在像编程这样的复杂领域中是一种很好的态度。 C++ 有一个陡峭的学习曲线,有时对一旦理解了它们就会看起来很明显的事情感到困惑是完全正常的。
标签: c++ this class-method