Wann ist es sicher, dieses - & gt; in Konstruktor und Destruktor

Habe ich nicht in der Lage, eine schlüssige Antwort auf dieses so weit. Wann ist es sicher zu nennen this-> innerhalb eines Objekts. Und insbesondere vom Konstruktor und Destruktor.

Und auch, wenn Sie mit öffentlicher Vererbung. Ist es sicher zu bedienen und downcasting auf das Ergebnis von diesem Aufruf?

So zum Beispiel:

class foo
{
   foo():
   a(),
   b(this->a)//case 1
   {
       this-> a = 5; //case 2
   }

   int a;
   int b;
};

class bar: public baz
{
   bar():
   baz(this)//case 3 - assuming baz has a valid constructor
   {


   }

}

Und schließlich den unmöglichsten eine

foo()
   {
      if(static_cast<bar*>(this));//case 4
   }

Welche von den oben genannten Fällen legal sind?

Hinweis: ich bin mir bewusst, dass viele der Praktiken, die oben sind nicht ratsam.

InformationsquelleAutor der Frage laurisvr | 2015-05-15

Schreibe einen Kommentar