So Ziehen Sie Ein Attribut

Inhaltsverzeichnis:

So Ziehen Sie Ein Attribut
So Ziehen Sie Ein Attribut

Video: So Ziehen Sie Ein Attribut

Video: So Ziehen Sie Ein Attribut
Video: Attribut - Satzglieder | DiB 2024, Kann
Anonim

Bei der Arbeit mit Objekten und anderen Instanzen einer Klasse ist der Zugriff auf Attribute eine der üblichen Operationen für einen Programmierer. Der Zugriff auf bestimmte Daten, die in Objekten gespeichert sind, kann aufgrund der dafür verwendeten Sicherheitsmethoden schwierig sein. Daher können die Attribute, die durch die privaten und geschützten Spezifizierer geschlossen werden, nur in einer Methode aus einer Klasseninstanz gezogen werden, die zu einem Objekt derselben oder einer untergeordneten (für geschützten) Klasse gehört.

So ziehen Sie ein Attribut
So ziehen Sie ein Attribut

Anweisungen

Schritt 1

Erstellen Sie ein Objekt oder einen Zeiger auf eine Instanz der Klasse, deren Attribut Sie in Ihrem Programm benötigen. Die Standardkonstruktion für eine solche Operation ist CMyClass myObj1. Manchmal müssen Sie zum Initialisieren eines Objekts bestimmte Parameter an den Klassenkonstruktor übergeben. In diesem Fall kann der Datensatz der Objekterstellung wie folgt aussehen: CMyClass myObj1 (param1, param2, param3), wobei CMyClass der Klassenname ist, myObj1 der Name des zu erstellenden Objekts ist und alle vom Konstruktor angeforderten Parameter aufgelistet sind in Klammern. Ein Zeiger auf eine Klasseninstanz wird wie folgt erzeugt: CMyClass * pObj1 = new CMyClass (param1, param2, param3).

Schritt 2

Die einfachste Möglichkeit, ein Attribut aufzurufen, besteht darin, direkt an einer beliebigen Stelle im Programm darauf zu verweisen. Dies ist jedoch nur für offene Daten möglich, die in einer Klasse mit dem Modifikator public beschrieben werden. Der direkte Zugriff über ein Objekt sieht so aus: myObj1.attr1, wobei attr1 ein Attribut dieser Klasse ist. Für einen Zeiger wäre der Aufruf: pObj1–> attr1.

Schritt 3

Wenn das Attribut, auf das Sie verweisen müssen, den Status Hidden hat und in einer Klasse mit dem Modifikator private beschrieben ist, ist der Zugriff darauf nur von einer Methode aus möglich, die zu derselben Klasse gehört. Die Methode oder Funktion der Klasse muss den öffentlichen Status public haben. Fügen Sie der Klasse eine neue Methode hinzu, in die die Verarbeitung des erforderlichen Attributs geschrieben wird. In diesem Fall können Parameter an die Funktion übergeben werden, abhängig von deren Wert bestimmte Aktionen ausgeführt werden. Die Funktion selbst kann auch Daten zurückgeben, beispielsweise den Inhalt eines Attributs. C++-Programmcode, der beide Funktionen für die Arbeit mit einem privaten Attribut implementiert: class CMyClass {protected: int attr1; // öffentliches Attribut: void funcA1 (int param) {attr1 = param; } int funcA2 () {return attr1; }};

Schritt 4

Um das private Attribut attr1 auf den gewünschten Wert zu setzen, rufen Sie also eine Methode derselben Klasse mit dem zuvor erstellten Objekt auf: myObj1.funcA1 (10) - durch eine ähnliche implizite Operation wird der Wert 10 in das Attribut attr1 gestellt. Wenn Sie mit einem Zeiger auf eine Instanz einer Klasse arbeiten, sieht eine ähnliche Operation wie folgt aus: рObj1–> funcA (10). Um das private Attribut attr1 abzurufen und den darin gespeicherten Wert herauszufinden, rufen Sie eine andere Methode der Klasse auf: int Res = myObj1.funcA2(). In diesem Fall wird der Integer-Variable Res der Wert der versteckten Klassenvariablen zugewiesen.

Schritt 5

Wenn Sie ein Attribut mit geschütztem Status in allen Objekten von untergeordneten Klassen aufrufen müssen, verweisen Sie direkt auf seine Variable. Beim Arbeiten in Funktionen fremder Klassen muss jedoch der Zugriff auf geschützte Daten wie oben beschrieben erfolgen.

Schritt 6

Um ein Attribut aufzurufen, ohne ein Objekt zu erstellen, deklarieren Sie seine Variable in der Klasse mit der folgenden Konstruktion als statisch: static int attr1. In diesem Fall können Sie das Attribut an einer beliebigen Stelle im Programmcode herausziehen, indem Sie den Eintrag CMyClass:: attr1 angeben.

Empfohlen: