QPushButton *pb = new QPushButton;
Видите, нет? Тип переменной УЖЕ указан, но его надо писать ещё раз.
Да, случаи разные бывают и иногда хочется странного - скажем, при хитрых схемах наследований имеет смысл заводить экземпляр базового класса, чтобы из него вытаскивать потомков, но однако, в данном случае мы нужна просто кнопка, так какого хера мне надо писать надо писать одно и то же одно и то же дважды дважды? почему нельзя просто так:
QPushButton *pb = new;
(а компилер уже догадается, что раз тип такой, то надо вызвать его умолчальный конструктор).или
void *pb = new QPushButton;
(кстати, вот так уже можно, но очь аккуратно - выстрел в ногу вероятен как никогда прежде!)В Лиспе вы просто
(setf pb (make-pushbutton))
как-то так