, bu bir soru yerel sözleşmeler. Gördüğüm yerlerinin çoğu, this->
'u gerektiği zaman kullanmazlar, ve bu da benim tercih ettiğim kongre olan , ama ben 'u sistematik olarak kullanmayı tercih eden kullanıcıları duydum.
Gerekli olduğunda iki durum vardır. Birincisi, 'u gizlediyseniz, yerel adla aynı ada sahip olan ismi; eğer ör. toto
isimli bir üyeniz var ve ayrıca işlev argümanınızı toto
olarak adlandırdınız. Birçok kodlama kuralları, bu durumundan kaçınmak için üye veya argümanları işaretler, örn. Tüm üye adları my
veya m_
ile başlar veya parametre adı the
ile başlayacaktır.
Diğer bir örnek, adına bir ad vermek için şablonda this->
'un kullanılabilmesidir. Bu, bir şablon sınıfının bağımlı tipinden miras alması ve tabanın bir üyesine, örneğin: Burada this->
olmadan
template <typename T>
class Toto : public T
{
public:
int f()
{
return this->g();
}
};
, g()
olmayan bir bağımlı adı olurdu ve derleyici dikkate temel sınıfını almadan şablon tanımının, bağlamında o kadar olmazdı.
Dikkat: eğer 'vin' sanal bir işlev ise, o zaman bu-> vin() 've' MyUtopicClass :: vin() 'farklıdır. –
aschepler