在C++的「this」指針上執行指針運算有什麼合法和/或有趣的用法?「this」指針上的指針運算
爲了讓SE對這個問題的長度感到滿意,我將包含一些相關的代碼。
class Foo
{
public:
Foo(bool terminate = false)
: _data(terminate ? -1 : 0)
{}
void Bar(void)
{
if (_data >= 0)
{
_data++;
this[1].Bar();
}
}
private:
int _data;
};
void main()
{
std::vector<Foo> vec;
vec.push_back(Foo());
vec.push_back(Foo());
vec.push_back(Foo());
vec.push_back(Foo());
vec.push_back(Foo(true));
vec[2].Bar();
}
這樣做沒有合理的理由,因爲對象不應該知道它是連續數組的成員(這是假定的)。而你的代碼是無限遞歸的。 –
我不認爲長度會成爲這個問題的不滿之源。 –
堆棧溢出不是「向程序員詢問什麼」。這不是納姆,這裏有規則。 – Yakk