【发布时间】:2015-07-18 02:58:07
【问题描述】:
是否可以在命名空间内调用函数?我需要这样做,因为该函数为变量分配了有意义的值。如果没有,是否有解决方法?下面是我想要的一个想法,foo 是为变量赋值的函数,bar1、bar2 是要为两个变量赋值的函数。
namespace space{
bar *bar1;
bar *bar2;
void foo(bar *b1, bar *b2) {/*b1 and b2 and given values*/}
foo(bar1, bar2); // this foo is a function call.
}
为了澄清,bar1 和 bar2 应该只在它们第一次被调用时定义,其他时候不能。
【问题讨论】:
-
我不确定您所说的“在命名空间中调用函数”是什么意思...也许这是对the question you asked 2 hours ago 的改写?
-
@DrewDormann 关闭但不完全正确。另一种需要单例模式。我的实际代码(未显示)已经在一个类中完成了这一点。现在我想将一个命名空间变量设置为单例值(实际上是两个变量,单例对),以便每当用户希望访问该变量时,他或她都可以通过命名空间而不是通过类来访问。我希望这个例子能澄清。有没有办法通过函数来定义命名空间变量的值。
-
在你的程序执行过程中,什么时候需要运行这个函数?
-
C++ 不直接支持。最接近的可能是每当有人通过覆盖
operator->的“智能容器”类访问对象时执行函数。我会给你一个完整的答案,但我要在全麦面包上吃一些很棒的培根包裹的狗。 -
我认为您对 SO 有多大帮助的评估不符合实际。德鲁花时间澄清你的帖子,有人提供了答案,当那些多汁多汁的热狗像角质舞会约会一样喊我的名字时,我提出了一个高水平的建议。您的帖子不清楚,虽然可以挽救,但缺乏明确性限制了响应。尽管您在 cmets 中提供了一些说明,但应将这些 cmets 移至您的帖子中。这肯定会让我更倾向于根据我之前的评论花时间提供一个可能可接受的解决方案。 600 个字符!!
标签: c++ function namespaces call