Witam. Stworzyłem obiekt z klasy Card
void funkcja
{
Card a01(//dane);
CardDeck.push_back(a01);
//usuniecie a01
//ponowne utworzenie
}
Chciałbym teraz usunąć obiekt a01 i ponownie go utworzyć poniżej z użyciem konstruktora.
Witam. Stworzyłem obiekt z klasy Card
void funkcja
{
Card a01(//dane);
CardDeck.push_back(a01);
//usuniecie a01
//ponowne utworzenie
}
Chciałbym teraz usunąć obiekt a01 i ponownie go utworzyć poniżej z użyciem konstruktora.
Doczytaj o zakresie zmiennych i ich czasie życia.
To wszystko dzieje się automatycznie.
To co chcesz zrobić jest teoretycznie możliwe, ale jestem na 100% pewien że nie chcesz tego robić...
Możesz jawnie wywołać destruktor obiektu zaalokowanego na stosie, pod warunkiem że w miejscu zajmowanym przez ten obiekt skonstruujesz nowy obiekt tego samego typu. Pfuj.
Sekcja 3.8.7 standardu C++
To co najprawdopodobniej masz na myśli to taki przypadek:
Card a01(//dane);
CardDeck.push_back(a01);
a01=Card(//nowedane);
CardDeck.push_back(a01);
Oprócz tego co rekomentował Ci @MarekR22 poczytaj o konstruktorze kopiującym i operatorze przypisania.
może o coś takiego Ci chodzi? :D
void funkcja
{
{ //tworzysz nowy zasięg:
Card a01(//dane);
CardDeck.push_back(a01);
} //po wyjsciu z tego bloku a01 zostaje zniszczone.
Card a01;
CardDeck.push_back(a01);
//ponowne utworzenie
}
O nic nie chodzi, jak napisał @MarekR22 , to jest problem xy ; bez zobaczenia całego kodu i wyjasnienia od OP, o co chodzi, wszelkie dywagacje są bezsensowne