首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从内联函数调用非内联函数

从内联函数调用非内联函数
EN

Stack Overflow用户
提问于 2013-09-04 18:47:08
回答 1查看 821关注 0票数 0

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

代码语言:javascript
复制
// button.hpp

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

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

代码语言:javascript
复制
#include "button.hpp"

void ExtraButtons::setShown(bool shown)
{
}

这个图书馆编译得很好。但是,当我使用这个库并包含button.hpp时,我从show()hide()中的setShown调用中得到了这个错误

代码语言:javascript
复制
undefined reference to `ExtraButtons::setShown(bool)'

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

EN

回答 1

Stack Overflow用户

发布于 2013-09-04 19:02:34

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18621512

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档