Portál AbcLinuxu, 8. listopadu 2025 02:34
MyClass a(parametry);
MyClass *a = MyClass(parametry);
new:
MyClass *a = new MyClass(parametry);Rozdíl je v typu,
*a je ukazatel. Volání konstruktoru je však stejné.
a (tj. třída) lokální proměnná, která nepřežije návrat z funkce. Ve druhém je a (pointer) lokální proměnná, ale samotná třída bude nadále existovat, dokud ji nezrušíte pomocí delete (a můžete pointer nebo referenci na ni použít i jako návratovou hodnotu).
MyClass a(parametry);je ekvivalentní
MyClass a = MyClass(parametry);i když má třída definován konstruktor bez parametrů a operátor přiřazení. Na druhou stranu, ten druhý zápis bych stejně nikdy nepoužil…
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.