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.
Die Funktion fun () befindet sich im globalen Namespace. Sie brauchen einen Prototyp:
%Vor%Tags und Links c++ namespaces friend