Из чтения Стандарта (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
Многоие знания сулят нам многие печали, и умножая знания мы умножаем печаль. (с) Екклезиаст.