2017-09-17 4 views
1

In einer Datei gibt es einen anonymen Namespace und einen benannten Namespace. Anonymer Namespace hat eine interne Funktion, die nicht offen gelegt werden sollte, und der benannte Namespace hat einige überladene Funktionen, auf die zugegriffen werden muss.Aufrufen einer Funktion in einem benannten Namespace aus anonymen Namespace

Kann mir jemand vorschlagen, wie man auf einen benannten Namensraum zugreift, der darunter geschrieben ist? Ist es in Ordnung, auf eine Funktion eines benannten Namespace aus einem anonymen Namespace zuzugreifen?

+1

Haben erklären Sie die 'nützlich :: func (int)'? – wally

+1

Die Funktion ':: crazy()' muss nach einer Deklaration von 'usable :: func()' definiert werden, nicht vorher. – Peter

+0

danke, ich dachte es gibt einen besseren Weg. –

Antwort

1

Sie in der entsprechenden Namensraum deklarieren kann, bevor es verwendet wird und definiert:

//test.cpp 

namespace useful { 
void func(int); 
} 

namespace 
{ 
void func() {} 
void crazy() 
{ 
    useful::func(3); 
} 
} 

namespace useful 
{ 
void func(int a) 
{ 
    //something 
} 
} 
Verwandte Themen