簡體   English   中英

是否有一個C ++相當於Python的“導入bigname為b”?

[英]Is there an C++ equivalent to Python's “import bigname as b”?

我一直很喜歡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);
namespace bhn = big_honkin_name;

還有另一種使用命名空間的方法:

using big_honkin_name::fn;
int a = fn(27);

StackOverflow救援! 是的你可以。 簡而言之:

namespace bhn = big_honkin_name;

這很容易..

namespace bhn = big_honkin_name;

您可以使用

using big_honkin_name::fn;

從命名空間big_honkin_name導入名為fn所有函數,以便您可以編寫

int a = fn(27);

但這並不能讓你縮小名稱本身。 要做(類似但不完全相同),你可以這樣做:

int big_honkin_object_name;

你以后可以用:

int& x(big_honkin_object_name);

然后像對待big_honkin_object_name那樣對待x 在大多數情況下,編譯器將消除隱含的間接。

using namespace big_honkin_name;

不是壞事。 一點也不。 明智地使用,將命名空間納入范圍可以通過消除不必要的混亂來提高代碼的清晰度。

(除非它在頭文件中,在這種情況下,這是非常糟糕的做法。)

但是,正如其他人指出的那樣,您可以創建名稱空間別名:

namespace big = big_honkin_name;

很好地說,Python導入的C ++等價物是:

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;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM