Zugriff auf die Funktion einer Klasse außerhalb der Klasse 1 von 2 erfordert die Dinge, die sind:
- Eine Instanz der Klasse.
- Eine
static
Funktion.
Lassen Sie uns schnell über eine Klasse sprechen. Wenn Sie einen class
Standard-Zugriffsmodifikator für Funktionen oder Variablen machen, ist private:
standardmäßig nur die Klasse selbst kann es nennen, gibt es einige andere Klassen, die zugreifen können, aber das ist zu dieser Zeit nicht wirklich relevant. In der gestellten Frage ist die Funktion Loading
privat. Dies bedeutet, dass es nur innerhalb der Klasse aufgerufen werden kann. Selbst mit einer Instanz der Klasse können Sie sie nicht von main
aufrufen. Wenn Sie die Funktion ohne eine Instanz des Objekts aufrufen möchten, muss es static
und public
sein.
Beispiel mit Ihrem Code:
class ImageLoading
{
public:
static void Loading()
{
cout << 5 << endl;
}
};
int main(int argc, char *argv[])
{
ImageLoading::Loading();
return 0;
}
Der Nachteil einer static
Funktion, ist, dass sie nicht auf eine Instanz einer Klasse gehört also, wenn Sie Klassenvariablen, die nicht statisch sind, die statische Funktion kann sie ohne eine Instanz dieses Objekts nicht ändern.
Hier ist eine gute Quelle mit einigen Beispielen von Access Modifiers
in C++: http://en.cppreference.com/w/cpp/language/access
Sie ein Objekt der Klasse benötigt, darauf zuzugreifen, oder es statisch zu machen und die Klassennamen – P0W
@ P0W zu verwenden ist: Hallo und willkommen zu Paketüberfluss! Sie haben den Bereich _comments_ gefunden, einen Bereich zum kritisieren, um Klärung anzufordern und Kämpfe mit Menschen zu führen.Wenn Sie die Frage beantworten möchten (dies bedeutet, eine Lösung für den Autor der Frage bereitzustellen), ist der richtige Ort dafür der _answer section_, den Sie unten finden können. Dann kann Ihre Antwort wie üblich überprüft werden. Danke und viel Spaß auf der Seite! –
@LightnessRacesinOrbit Ich dachte, Benutzer wurden ermutigt, nutzlose Ruf seit den letzten 3 Jahren und 11 Monaten nicht zu farmen. Aber Punkt bemerkt, ich respektiere immer 200K + Benutzer. – P0W