Конструктор и объектная инициация - PullRequest
0 голосов
/ 22 июля 2011

Когда мы получаем доступ к «this \ Me» в конструкторе любого класса, как получается, что «this» уже доступно, пока оно еще создается?Временное создание экземпляра уже произошло до вызова конструктора?Если это так, значит ли это, что эти конструкторы вызываются после инициализации реального объекта?

Ответы [ 2 ]

2 голосов
/ 22 июля 2011

объект создан и память выделена перед инициализацией его конструктором .... бывший 1. вы создаете объект;

MyObject myObject;

2. Вы инициализируете это

myObject = new MyObject();

эти 2 шага также выполняются, когда вы делаете это:

MyObject myObject = new MyObject();

Edit: в конструкторе this идет за myObject

0 голосов
/ 22 июля 2011

В C ++, когда у вас есть

Foo::Foo(int x)
: frob(x) {
    this->frob = x;
}

, тогда построение действительно происходит точно между : и первой фигурной скобкой:

:<here>{

В теле этого конструктораобъект является полностью построенным, поэтому, используя this, он четко определен.

...