Jak Vytáhnout Atribut

Obsah:

Jak Vytáhnout Atribut
Jak Vytáhnout Atribut

Video: Jak Vytáhnout Atribut

Video: Jak Vytáhnout Atribut
Video: odvrtání na počkání.. yes 2024, Smět
Anonim

Při práci s objekty a jinými instancemi třídy je přístup k atributům jednou z obvyklých operací programátora. Získání přístupu k určitým datům uloženým v objektech může být obtížné vzhledem k použitým metodám zabezpečení. Takže atributy uzavřené soukromými a chráněnými specifikátory lze vytáhnout z instance třídy pouze v metodě patřící k objektu stejné nebo podřízené (pro chráněnou) třídu.

Jak vytáhnout atribut
Jak vytáhnout atribut

Instrukce

Krok 1

Vytvořte objekt nebo ukazatel na instanci třídy, jejíž atribut potřebujete ve svém programu. Standardní konstrukce pro takovou operaci je CMyClass myObj1. Někdy pro inicializaci objektu musíte předat konstruktoru třídy určité parametry. V tomto případě může záznam vytvoření objektu vypadat takto: CMyClass myObj1 (param1, param2, param3), kde CMyClass je název třídy, myObj1 je název vytvářeného objektu a jsou uvedeny všechny parametry požadované konstruktorem v závorkách. Ukazatel na instanci třídy je vytvořen následovně: CMyClass * pObj1 = new CMyClass (param1, param2, param3).

Krok 2

Nejjednodušší způsob, jak zavolat atribut, je odkazovat na něj přímo kdekoli v programu. To je však možné pouze pro otevřená data popsaná ve třídě s veřejným modifikátorem. Přímý přístup přes objekt vypadá takto: myObj1.attr1, kde attr1 je atribut této třídy. U ukazatele by volání vypadalo takto: pObj1–> attr1.

Krok 3

Pokud má atribut, na který se musíte odkazovat, skrytý stav a je popsán ve třídě se soukromým modifikátorem, pak je k němu přístup možný pouze z metody patřící do stejné třídy. Metoda nebo funkce třídy musí mít veřejný status public. Přidejte novou metodu do třídy, kde napište zpracování požadovaného atributu. V tomto případě lze do funkce předat parametry v závislosti na hodnotě, při které jsou prováděny určité akce. Samotná funkce může také vracet data, například obsah atributu. C ++ programový kód, který implementuje obě funkce pro práci se soukromým atributem: třída CMyClass {chráněno: int attr1; // veřejný atribut: void funcA1 (int param) {attr1 = param; } int funcA2 () {návrat attr1; }};

Krok 4

Chcete-li tedy nastavit soukromý atribut attr1 na požadovanou hodnotu, zavolejte metodu stejné třídy pomocí dříve vytvořeného objektu: myObj1.funcA1 (10) - podobnou implicitní operací se hodnota 10 umístí do atributu attr1. Při práci s ukazatelem na instanci třídy bude podobná operace vypadat takto: рObj1–> funcA (10). Chcete-li načíst soukromý atribut attr1 a zjistit v něm uloženou hodnotu, zavolejte jinou metodu třídy: int Res = myObj1.funcA2 (). V tomto případě bude celočíselné proměnné Res přidělena hodnota proměnné skryté třídy.

Krok 5

Pokud potřebujete zavolat atribut s chráněným stavem ve všech objektech podřízených tříd, podívejte se přímo na jeho proměnnou. Při práci ve funkcích zahraničních tříd však bude nutné přístup k chráněným datům získat výše popsaným způsobem.

Krok 6

Chcete-li volat atribut bez vytvoření objektu, deklarujte jeho proměnnou ve třídě jako statickou pomocí následující konstrukce: static int attr1. V tomto případě můžete vytáhnout atribut kdekoli v kódu programu zadáním položky: CMyClass:: attr1.

Doporučuje: