данного класса (например, с именем X
), я хочу выделить массив следующим образом:X** array=new X*[20];
Давайте посмотрим на следующую функцию:
void Func(){
X** array=new X*[2];
X[0]=& X(5);
X[1]=& X(3);
}
Это нормально делать так или я должен делать это с new
?
new
? (или что я не могу сделать это безnew
[вообще], потому что это временный объект) 04.06.2018array
. Если вам просто нужны два объектаX
, вы должны определитьX array[2];
. Если по какой-то причине вы знаете, что вам нужно сохранить два результатаnew X
, вам понадобитсяX* array[2]
. 04.06.2018X* array[2]
я должен определить конструктор по умолчанию в классе X? 04.06.2018class X
! Вы можете использовать предварительное объявление, то естьclass X;
. Определениеclass X
необходимо только тогда, когда вам нужны фактические объектыX
, но опять же, обычно этот вопрос вообще не возникает. 04.06.2018nullptr
, просто это не единственная возможная инициализация. Это не зависит от компилятора или платформы. 04.06.2018