9
Jak używać skalaru i tablicy w inteligentnym wskaźniku?Użycie zarówno skalarnej, jak i tablicowej w inteligentnym wskaźniku
Stary sposób korzystania z nowego i usunąć wskaźnik:
int *p;
if (useScalar) {
p = new int;
} else {
p = new int[10];
}
if (useScalar) {
delete p;
} else {
delete[] p;
}
w inteligentny wskaźnik, muszę użyć 2 wskaźników dla każdego skalarnego i tablicy palików:
std::unique_ptr<int> p1(new int);
std::unique_ptr<int[]> p2(new int[10]);
Jak mogę zmniejszyć do używać tylko 1 inteligentnego wskaźnika?
Możesz napisać własny inteligentny wskaźnik, który przechowuje 'bool useScalar' w celu określenia, czy używać' delete' lub 'delete []'. – jotik
Czy możesz przydzielić 'p = new int [1]' i udawać, że jest to wskaźnik do skalaru? – dasblinkenlight
Możesz użyć 'int [1]' jako skalaru, może to również uprości inne obszary twojego programu ... – alain