Hogy "nyúlhat hozzá" egy objektum egy másik objektumhoz?
Egy osztály objektuma, hogy módosíthatja egy másik ugyanolyan osztályból származtatott objektum adattagjait?
Az első dolog, ami eszembe jut az a mutatók alkalmazása.
Nemtom hogy jönnek ide a mutatók, szerintem nem tudod mire valók.
Másik objektum adattagjait publikus metódusokon keresztül módosíthat.
@09:44: Az a hekk, hogy a masik objektum privatjat probalom piszkalni.
Az nem veletlenul private.
Az adott osztalyon belul persze, hogy elered, tok jo, de kivulrol nem, csak a publikus metodusokon at.
#6, #7:
Az az érzésem itt valami félreértés van akkor.
"Egy osztály objektuma, hogy módosíthatja egy másik ugyanolyan osztályból származtatott objektum adattagjait?"
Nálam ez azt jelenti hogy van egy osztály és annak két objektuma. Az egyik objektum módosítani akarja a másikat. Nálatok ez mást jelent?
Ennek semmi akadálya, legyen az privát adattag vagy sem. Az az érzésem nem vagytok tisztában a nyelv és az OOP alapjaival, így nem tudjátok hogy a láthatóság nem objektum hanem osztályszintű.
Talán egy példával kéne illusztrálnom hogy megértsétek:
class MyClass {
. . int foo;
public:
. . void bar(MyClass* obj) {
. . . . obj->foo = 10;
. . }
};
Vajon ez lefordul vagy sem?
MyClass alma, korte;
alma.bar(&korte);
Az alma objektum tudja módosítani a körte objektum privát láthatóságú foo adattagját?
Szerintem igen. Az alma típusa MyClass, ismeri a MyClass privát láthatóságú adattagjait, így a körtéjét is. Ez elég gyakori dolog, mégis 3 ember kapásból hackelésről(???) beszél.
"Az alma típusa MyClass, ismeri a MyClass privát láthatóságú adattagjait, így a körtéjét is. Ez elég gyakori dolog, mégis 3 ember kapásból hackelésről(???) beszél."
Gyakori mivel így működik a copy/move constructor is, meg a legtöbb operátor.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!