代码之家  ›  专栏  ›  技术社区  ›  paxdiablo

是否有一个C++相当于Python的“导入BigNead作为B”?

  •  6
  • paxdiablo  · 技术社区  · 16 年前

    我一直喜欢蟒蛇的

    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);
    
    6 回复  |  直到 8 年前
        1
  •  13
  •   rlbond    16 年前
    namespace bhn = big_honkin_name;
    

    还有另一种使用名称空间的方法:

    using big_honkin_name::fn;
    int a = fn(27);
    
        2
  •  12
  •   Community CDub    8 年前

    StackOverflow to the rescue! 是的,你可以。简而言之:

    namespace bhn = big_honkin_name;
    
        3
  •  6
  •   yoco    16 年前

    这很容易。

    namespace bhn = big_honkin_name;
    
        4
  •  2
  •   j_random_hacker    16 年前

    你可以使用

    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 . 在大多数情况下,编译器将消除隐含的间接性。

        5
  •  1
  •   MattyT    16 年前
    using namespace big_honkin_name;
    

    不是坏事。一点也不。明智地使用,将命名空间引入范围 改进 通过消除不必要的混乱来清晰代码。

    (除非它在头文件中,在这种情况下 非常 拙劣的实践

    但是是的,正如其他人指出的,您可以创建一个名称空间别名:

    namespace big = big_honkin_name;
    
        6
  •  0
  •   Vin    8 年前

    很好地说,Python导入的C++等价物是:

    Python到C++

    import someLib as sl = & gt; namespace sl = someLib;

    from someLib import func -gt; using someLib::func;

    from someLib import * -gt; using namespace someLib;

    请注意,您必须执行 #include<someLib> 在C++之前的这些。

    最后一个相当有名!

    #include<iostream>
    using namespace std;