假设我在两个不同的命名空间中定义了方法:
namespace foo
{
void print()
{
//do work...
}
}
namespace bar
{
void print()
{
//do work...
}
}
Run Code Online (Sandbox Code Playgroud)
该foo::print()和bar::print()功能是完全平等的.我的项目使用了这些函数的大量调用.
有没有办法删除其中一个print()定义而不更改这些函数的调用?我的意思是类似下面的东西(当然,C++语言不允许这种结构,它只是一个例子):
namespace foo, bar //wrong code!
{
void print()
{
//do work...
}
}
Run Code Online (Sandbox Code Playgroud)
如果没有办法按我的意愿重构代码,请告诉我,你喜欢以下决定吗?如果您的项目包含此类代码,您会感到高兴吗?:)
namespace foo
{
void print()
{
//do work...
}
}
namespace bar
{
void print()
{
foo::print();
}
}
Run Code Online (Sandbox Code Playgroud)
加:
谢谢你们,我对你的答案非常满意.我想让你澄清一下:using ::foo::print和之间有区别using foo::print吗?