про new и new()
От: Seneca Россия  
Дата: 16.02.05 10:26
Оценка:
Из чтения Стандарта (5.3.4.(15)) я понял что для НЕ POD типов, разницы между new и new() нет.
Рассмотрим такой код:
class A
{
    int X;
    int Y;
};
class B
{
    int X;
    int Y;
};

int main(int argc, char* argv[])
{
    A* a = new A;
    B* b = new B();
    return 0;
}


Судя по всему A и B это не POD типы, так как их члены protected, а ФАК http://www.parashift.com/c++-faq-lite/intrinsic-types.html#faq-26.7
говорит о том, что "a POD type's non-static data members must be public".

Следовательно разницы быть не должно, а она есть.


— a 0x00322f10 {X=-842150451 Y=-842150451 } A *
X -842150451 int
Y -842150451 int
— b 0x00322f58 {X=0 Y=0 } B *
X 0 int
Y 0 int
Многоие знания сулят нам многие печали, и умножая знания мы умножаем печаль. (с) Екклезиаст.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.