2015-03-11 6 views
6

Angenommen, ich habe eine Klasse Foo mit einem Mitglied Funktionsleiste(). Ich habe auch eine völlig unabhängige Funktion, die zufällig auch bar() genannt wird.Funktion Namespacing Probleme in D

class Foo { 
    /* ... */ 
    void bar() { 
     /* ... */ 
    } 
} 

void bar() { /* ... */ } 

Es scheint, dass jeder Anruf Bar() innerhalb Foo standardmäßig auf die Member-Funktion.

Wie rufe ich die Nichtmitgliedfunktion von innerhalb Foo auf?

Antwort

13

So:

.bar(); 

Die . führt, wird den Compiler zwingen, auf der Modulebene Umfang zu suchen.

Sie können auch den vollständig qualifizierten Namen verwenden: module_name.bar(), wobei module_name der Name des Moduls ist (standardmäßig der Dateiname ohne die Erweiterung .d).