Возможный дубликат:
Почему это ошибка при использовании пустого набора скобок для вызова конструктора без аргументов?
$ cat cons.cpp
#include <iostream>
class Matrix {
private:
    int m_count;
public:
    Matrix() {
        m_count = 1;
        std::cout << "yahoo!" << std::endl;
    }
};
int main() {
    std::cout << "before" << std::endl;
    Matrix m1();                         // <----
    std::cout << "after" << std::endl;
}
$ g++ cons.cpp
$ ./a.out
before
after
$
  Что делает синтаксис Matrix m1();?
Я считал, что он такой же, как Matrix m1;. Очевидно, я ошибаюсь.
