gpt4 book ai didi

c++ - 从内联函数调用非内联函数

转载 作者:行者123 更新时间:2023-11-28 07:26:52 25 4
gpt4 key购买 nike

在库中,我在标题中有以下内容:

// button.hpp

class ExtraButtons
{
public:
static inline void show() { setShown(true); }
static inline void hide() { setShown(false); }
static void setShown(bool shown);
};

以及源文件中的以下内容:

#include "button.hpp"

void ExtraButtons::setShown(bool shown)
{
}

库编译正常。但是,当我使用该库并包含 button.hpp 时,我从 show() 中的 setShown 调用中得到此错误,并且隐藏():

undefined reference to `ExtraButtons::setShown(bool)'

我可以通过从 show()hide() 中删除内联并在源文件中定义它们来解决这个问题,就像正常情况一样,或者通过制作 setShown 也是内联的。为什么会这样?这些是唯一的解决方案吗?

最佳答案

看起来您没有将二进制库链接到您的项目中,或者您对 setShown实际定义是 inline void ExtraButtons::setShown( bool shown)(请注意,它在源文件中被意外标记为内联)。

关于c++ - 从内联函数调用非内联函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18621512/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com