【发布时间】:2015-04-27 16:44:42
【问题描述】:
我正在构建一个 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 工具链一起使用。
【问题讨论】:
-
您刚刚遇到了最令人头疼的解析问题。当您执行
monolith::EngineOptions options();时,您声明了一个名为options的函数,它返回一个monolith::EngineOptions。 -
monolith::EngineOptions options();你的问题——那条线应该做什么? -
好的,非常感谢你们,我以为我在初始化变量,就像我在参考书中读到的那样,但我想这是不正确的;我该如何正确地做到这一点,特别是如果它不是像这样的空构造函数?
标签: c++ reference compiler-errors codeblocks