Die Friend-Funktion kann nicht auf die private Funktion zugreifen, wenn sich die Klasse in einem Namespace befindet

7

Ich habe eine Klasse in einem Namespace und diese Klasse enthält eine private Funktion. Und es gibt eine globale Funktion. Ich möchte, dass diese globale Funktion der Freund meiner Klasse ist, die sich im Namespace befindet. Aber wenn ich es als einen Freund mache, denkt der Compiler, dass die Funktion nicht global ist und sich innerhalb des Namensraums selbst befindet. Wenn ich also versuche, mit der globalen Funktion auf die Funktion private member zuzugreifen, funktioniert das nicht, während es funktioniert, wenn ich eine Funktion mit demselben Namen in diesem Namespace selbst definiere. Unten ist der Code, den Sie sehen können.

%Vor%

Ich habe auch versucht, Freund zu machen       Freund void :: fun ();  Und es hilft auch nicht.

    
user389679 12.07.2010, 17:11
quelle

2 Antworten

17

Sie müssen den globalen Bereichsoperator :: verwenden.

%Vor%     
Brian R. Bondy 12.07.2010 17:16
quelle
4

Die Funktion fun () befindet sich im globalen Namespace. Sie brauchen einen Prototyp:

%Vor%     
Hans Passant 12.07.2010 17:17
quelle

Tags und Links