Линия
Agent theAgent(void);
Фактически рассматривается компилятором как объявление функции theAgent
, которая не принимает аргументов и возвращает агента.
Это объясняется в C ++ FAQ Lite .
Чтобы вызвать конструктор по умолчанию и настроить объект типа Agent
(в отличие от приведенного выше оператора, который интерпретируется как объявление функции), вы можете просто объявить theAgent
без использования скобок, как в:
Agent theAgent;
Все обычные вызовы участников, такие как loadSAG
, будут работать, как и ожидалось, после этого момента.
В качестве альтернативы, если у вас должен быть объект в куче, используйте вместо этого:
Agent* theAgent = new Agent(); // Notice the *
theAgent->loadSAG(); // Use -> instead of .
// The code where theAgent is used
delete theAgent; // This frees the memory allocated by new