Ten symbol wydaje się być destruktorem generowanym przez kompilator. Jaka jest różnica między tym, "destruktorem generowanym przez kompilator" i "skalarnym usuwaniem destruktora"? Czy są jakieś inne typy generowane przez kompilator/dtor?Jakie jest znaczenie symbolu "wektor usuwania destruktora" w VC++?
Odpowiedz
Funkcje o nazwach 'scalar deleting destructor'
i 'vector deleting destructor'
są funkcjami pomocniczymi utworzonymi przez kompilator VC podczas generowania kodu dla instrukcji delete
. Nie należy mylić ich z destruktorem klasy, który może być również generowany przez kompilator. Były mogą być wyrażone w Pseudokod jak
void scalar_deleting_destructor(A* pa)
{
pa->~A();
A::operator delete(pa);
}
a drugi jako
void vector_deleting_destructor(A* pa, size_t count)
{
for (size_t i = 0; i < count; ++i)
pa[i].~A();
A::operator delete[](pa);
}
Dzięki, Andrey. Jestem nieco zdezorientowany wewnętrznym operatorem usuwania tutaj. Ten skalar usuwający destruktor jest generowany przez kompilator i jest wywoływany przez 'delete a', czy to prawda? Wydaje się, że wewnętrzne wywołanie do usunięcia powoduje rekursję? – Thomson
@Thomson Pozwól, że spróbuję to wyjaśnić. "delete a" to * instrukcja usuwania *, tj. konstrukcja językowa, której nie należy mylić z operatorem 'A :: operator delete', który jest operatorem * * delete, funkcją, która faktycznie zwalnia pamięć. Nie mam w tej chwili dostępnego standardu C++, mógłbym podać referencje nieco później. – Andrey
- 1. Jakie jest znaczenie symbolu $ w jQuery?
- 2. Jakie jest znaczenie operatora || =
- 3. Jakie jest znaczenie System.CLSCompliantAttribute?
- 4. Jakie jest znaczenie operatora &?
- 5. Jakie jest znaczenie CTOR?
- 6. Jakie jest znaczenie transakcji?
- 7. Jakie jest znaczenie! #: 3?
- 8. Jakie jest znaczenie identyfikatora?
- 9. jakie jest znaczenie CV_INSTRUMENT_REGION()?
- 10. wektor usuwania unique_ptr?
- 11. jakie jest znaczenie numeru 1e5?
- 12. Jakie jest znaczenie SQL 0x5E5B7D7E?
- 13. Jakie jest znaczenie wyrażenia "+ + a"?
- 14. Jakie jest znaczenie tego typedef?
- 15. Jakie jest znaczenie adnotacji @ javax.persistence.Lob w WZP?
- 16. Jakie jest znaczenie "@include" w plikach .css?
- 17. Jakie jest znaczenie WaitUntilDOne w performSelectorOnMainThread?
- 18. Jakie jest znaczenie? = W operatorze ABAP?
- 19. Jakie jest znaczenie <- w AI?
- 20. Jakie jest znaczenie $ {0%/*} w skrypcie bash?
- 21. jakie jest znaczenie nawiasów w definicji właściwości?
- 22. Jakie jest znaczenie podwójnego "at" (@@) w Perlu?
- 23. Jakie jest znaczenie DPI w BitmapSource.Create() metoda?
- 24. Jakie jest znaczenie znaku "&" w zwróconej wartości?
- 25. Jakie jest znaczenie IMetadataExchange w WCF?
- 26. Deklaracja metody zmienia znaczenie symbolu
- 27. Jakie jest znaczenie dyrektywy {$ C PRELOAD}?
- 28. Jakie jest znaczenie "statycznego jako ograniczenia funkcji?
- 29. Jakie jest znaczenie wartości z Java Process.exitValue()?
- 30. Jakie jest znaczenie terminu "klasa niestandardowa"?
Dlaczego nie można zaakceptować anwser? – Liviu