我正在构建一个3D游戏引擎。我已经用其他语言构建了许多语言,但最终决定获得C ++的速度优势(尽管不太了解它)。
我有一个名为EngineOptions
的类,用于存储有关如何初始化引擎的信息。引擎的主类Monolith
然后对选项实例进行const
引用,如下所示:
monolith::EngineOptions options();
monolith::Monolith engine(options);
Monolith
有一个正确的头文件和一个像这样的构造函数:
Monolith::Monolith(const EngineOptions& options) : m_options(options)
{
m_window(m_options.windowWidth, m_options.windowHeight, m_options.windowTitle);
}
虽然我认为这是正确的,但编译器抱怨:
no matching function for call to 'monolith::Monolith::Monolith(monolith::EngineOptions (&)())'
打扰一下,如果我是傻瓜,但我认为这段代码是正确的,我错了吗? 我正在使用Code :: Blocks IDE和我系统上提供的标准GCC工具链。
答案 0 :(得分:2)
从此行中删除括号:
monolith::EngineOptions options();
编译器认为您正在声明一个返回EngineOptions
实例的函数。