【问题标题】:Why is this function out of scope (and another in the same included header isn't)?为什么这个函数超出范围(同一个包含的头文件中的另一个函数没有)?
【发布时间】:2014-07-17 14:13:49
【问题描述】:

简化/伪编码一个相当大的项目 ATM 中正在发生的事情,我有以下功能,部分:

helper_checkBypassControl(paramsX) {
Status status;

enableBypasses(paramsY);
status = setBypasses(paramsZ);
}

我的辅助函数中的函数调用的标头包含在内,而且必须是,因为两者都在同一个标​​头中,并且 enableBypasses 工作正常。他们都返回一个状态。 setBypasses 是该标头中的静态函数(enableBypasses 只是 Status 类型),当我通过 CLI 编译时,我收到一个错误,即 setBypasses 超出范围。

我对静态函数的理解有误吗?当包含标头并进行上述调用时,静态函数怎么可能超出范围?除了明显的错误之外,有人可能会给我一个直觉吗?我很困惑,因为这两个函数都来自同一个标头,用相似的参数做相似的事情,但后者超出了范围,而前者不在。如果有的话,我应该认为静态 setBypasses 应该被识别,而常规 enableBypasses 可能存在问题,除非我的理解有缺陷。

希望这个描述足以让某人指出我正确的方向!由于有很多层在起作用,因此试图保持其通用性 - 如果需要更多细节来诊断,请告诉我!

【问题讨论】:

  • 你至少应该包含你的标题。请不要省略周围的代码,当然你应该省略标题的不相关功能。有疑问发布整个头文件。

标签: c++ scope


【解决方案1】:

尝试使用 static_class::method。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-09
    • 2020-06-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多