Вы сделали ошибку здесь:
DatabaseControl myDBControl();
Вы объявили функцию с именем myDBControl
без аргументов и возвращаете DatabaseControl
.
Объявления объекта без каких-либо аргументов конструктора должен опустить ()
:
DatabaseControl myDBControl;
Это связано с (но не точно) « наиболее неприятным анализом », поскольку оно вызвано тем же правилом языка что -предложения являются декларациями функций, если они могут быть проанализированы .