namespace Foo
{
namespace Inner
{
void func (int *);
}
}
Run Code Online (Sandbox Code Playgroud)
#include <Foo.h>
namespace Bar
{
namespace Inner
{
void func (float *);
}
}
Run Code Online (Sandbox Code Playgroud)
#include <Bar.h>
using namespace Bar;
int main ()
{
int i;
float f;
Inner::func (&i);
Inner::func (&f);
}
Run Code Online (Sandbox Code Playgroud)
的main重载无需命名空间限定符即可使用,但重载需要命名float *空间限定符。funcBar::int *Foo::
我知道我可以
using namespace Foo::Inner;
using namespace Bar::Inner;
int main ()
{
int i;
float f;
func (&i);
func (&f);
}
Run Code Online (Sandbox Code Playgroud)
我不希望Inner::func这样,我想在每种情况下都这样引用。
我也不想添加using namespace Foo到每个.cpp包含的文件Bar.h(这是库重构工作的结果,将一些内容拉Bar入Foo,许多.cpp文件已经包含Bar.h)。
我将此非正式地视为“导入”Foo::Inner到Bar::Inner,因此是问题标题。我真正的意思是:
我可以添加一些内容,让我可以在任何有效的地方Bar.h引用重载吗?Foo::InnerInner::stuffusing namespace Bar
您可以将 using 放入Bar::Inner:
namespace Bar
{
namespace Inner
{
using Foo::Inner::func;
void func (float *);
}
}
Run Code Online (Sandbox Code Playgroud)
这样两个重载都可以用 来引用Bar::Inner::func。
使用
namespace Inner {
using namespace Foo::Inner;
using namespace Bar::Inner;
}
Run Code Online (Sandbox Code Playgroud)
前main。请参阅此处的实例
| 归档时间: |
|
| 查看次数: |
556 次 |
| 最近记录: |