我一直很喜欢Python的
import big_honkin_name as bhn
因此,您可以在源代码中使用bhn.thing
而不是更详细的big_honkin_name.thing
。
我在C ++代码中看到过两种类型的命名空间:
using namespace big_honkin_name; // includes fn().
int a = fn (27);
(我确信这是坏的事情)或:
int a = big_honkin_name::fn (27);
有没有办法在C ++代码中获得Python功能,例如:
alias namespace big_honkin_name as bhn;
int a = bhn::fn (27);
答案 0 :(得分:13)
namespace bhn = big_honkin_name;
还有另一种使用命名空间的方法:
using big_honkin_name::fn;
int a = fn(27);
答案 1 :(得分:12)
StackOverflow to the rescue!是的,你可以。简而言之:
namespace bhn = big_honkin_name;
答案 2 :(得分:6)
很容易..
namespace bhn = big_honkin_name;
答案 3 :(得分:2)
您可以使用
using big_honkin_name::fn;
从命名空间fn
导入名为big_honkin_name
的所有函数,以便您可以编写
int a = fn(27);
但这不会让你缩小名称本身。要做(类似但不完全相同),你可以这样做:
int big_honkin_object_name;
您稍后可以使用:
int& x(big_honkin_object_name);
然后将x
与big_honkin_object_name
一样对待{{1}}。在大多数情况下,编译器将消除隐含的间接。
答案 4 :(得分:1)
using namespace big_honkin_name;
不是坏事。一点也不。明智地使用,通过消除不必要的混乱,将命名空间纳入范围提高代码的清晰度。
(除非它在头文件中,在这种情况下它是非常糟糕的做法。)
但是,正如其他人指出的那样,您可以创建名称空间别名:
namespace big = big_honkin_name;
答案 5 :(得分:0)
很好地说,Python导入的C ++等价物是:
import someLib as sl
=> namespace sl = someLib;
from someLib import func
- > using someLib::func;
from someLib import *
- > using namespace someLib;
请注意,您必须先在C ++中使用#include<someLib>
。
#include<iostream>
using namespace std;