Jaki jest cykl życia obiektu C ++?

Jestem wytrawnym deweloperem C, który dopiero zaczyna wchodzić w C ++ i muszę przyznać, że jestem bardzo zdezorientowany, jak wiele jest sposobów tworzenia, przechowywania i niszczenia obiektów C ++. W C życie jest proste: przypisanie do= kopie na stosie imalloc/free zarządzaj danymi na stercie. C ++ jest dalekie od tego, a przynajmniej tak mi się wydaje.

W związku z tym oto moje pytania:

Czym sąwszystko sposoby tworzenia obiektu C ++? Bezpośredni / konstruktor kopii, zadanie itp. Jak działają?Jakie są wszystkie różne składnie inicjalizacji związane z tymi wszystkimi typami tworzenia obiektów? Jaka jest różnica pomiędzyT f = x, T f(x);, T f{x};itd.?Najważniejsze,gdy czy prawidłowo jest kopiować / przypisać / cokolwiek= jest w C ++ i kiedy chcesz używać wskaźników? W C bardzo przywykłem do rzucania wskaźnikamilos, ponieważ przypisanie wskaźnika jest tanie, ale kopiowanie struktury jest mniej. Jak wpływa na to semantyka kopiowania C ++?Na koniec, jakie są te wszystkie rzeczyshared_ptr, weak_ptritd.?

Przepraszam, jeśli jest to dość szerokie pytanie, ale jestem bardzo zdezorientowany, kiedy z czego korzystać (nawet nie wspominając o moim zamieszaniu dotyczącym zarządzania pamięcią w kolekcjach inew operator) i czuję, że wszystko, co wiedziałem o zarządzaniu pamięcią C, załamuje się w C ++. Czy to prawda, czy też mój model mentalny jest po prostu zły?

Podsumowując: w jaki sposób obiekty C ++ są tworzone, inicjowane i niszczone oraz kiedy należy używać każdej metody?

questionAnswers(3)

yourAnswerToTheQuestion