Le tudnátok nekem vezetni lépésről lépésre, mit csinál ez a program?
Itt van ez a kód. Annyit értek belőle hogy a konstruktorral változtat a számok értékein, a destruktor pedig kiírja az eredményt. Viszont azt hogy pontosan mit csinál a számokkal, azt nem. Még az is kérdés lenne, hogy a main-ben a zárójelben lévő két sor változtat-e a kiírás sorrendjén?
(c++)
class A {
public:
static int o;
int oo;
A() :oo(o++) {};
A(const A& po) : oo(po.oo + 1) {};
~A() { cout << o << ':' << oo << '\n'; }
};
int A::o = 0;
int main() {
A a;
A b(a);
{
A c(b);
A d;
}
A e(a);
A f;
return 0;
}
1# Az oldal kiveszi a sor elején lévő üres karaktereket. Tehát nem tudja szebben berakni, max valahova felölti és belinkeli.
Plusz ez egy olyan egyszerű kód részlet, hogy ha ránézel látod.
Ha nem ismered a C/C++-t akkor inkább ne is kommentelj.
Én java fejlesztő vagyok, így nem is feltétlenül akartam erre válaszolni, de felb--nak az olyan inkompetens emberek mint te.
Van egy statikus változód az osztályban, ami azt jelenti, hogy mindegyik példánya ugyanazt az egy változót látja. Ha módosítod az egyikben, ezt látos a másikból, az az o.
Az A osztály konstruktora ezt növeli eggyel, miután a jelenlegi értékét (ha ++o lenne, akkor előbb növelne, és utána adná vissza a már növelt ęrtéket) az oo osztályváltozónak beállította inicializáló listán
A copy konstruktor a kapott példány oo változóját állítja be a jelenlegi példány oo-jának és hozzáad egyet.
A dekstruktor kiírja a statikus o változó értékét és az oo tagváltozó értékét.
A mainben konstruktor és copy kobstruktor hívások vannak. A {} közötti rész egy scope, aminek a végén, a benne létrehozott objekumok megsemmisítésre kerülnek, azaz a destruktor meghívásra kerül (tehát változtat a kimeneten, hogy az a két sor {} között van)
#1
Ha tudnál kódolni akkor tehetné egymás mellé is a karaktereket mert akkor is el tudnád olvasni.
De mivel fogalmad sincs róla így csak akkor tudod olvasni ha a nyulat körbe pontozzák.
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!