QT 코딩에서 동적으로 할당 된 포인터는 특정 소멸자를 쓰지 않기 때문에 어떻게 파기됩니까?QT의 동적 메모리 할당 해제
답변
짧은 대답은 다음과 같습니다
QObjects 개체 나무에 자신을 구성 할 수 있습니다. 다른 객체를 부모로 사용하여 QObject를 만들면 부모의 children() 목록에 추가되고 부모가되면 QObject가 삭제됩니다.
Qt는 프레임 워크 내에서 개체 계층 구조와 소유권에 대한 좋은 문서를 가지고 있습니다.
- QObject를 트리 구조
- 관리되는 포인터 클래스
그리고이 정말하지 않는 : 당신이 here
Neox's answer을 확장하기 위해 읽을 수 Qt는 객체 관리를위한 두 가지 방법이있다 명백해질 이유로 잘 섞는다.
QObject은 '무료'이거나 부모가있을 수 있습니다. QObject가 부모 집합을 가질 때 (QObject 생성자에 다른 QObject에 대한 포인터를 제공하거나 setParent()
을 호출하여) 부모 QObject는 자식 QObject의 소유자가되며 자식 QObject의 소유자가 될 때 해당 자식이 파기되는지 확인합니다. 또한 자녀/부모 관계를 검사하는 데 사용할 수있는 몇 가지 방법이 있습니다.
동적으로 할당 된 개체를 관리하는 별도의 방법은 this paper이 매우 잘 설명하는 관리되는 포인터 클래스입니다. "동적으로 할당 된 객체에 QScopedPointer 클래스를 저장 포인터, 파괴에이를 삭제"
- 을하고 명확하고 분명한 소유권과 수명이 객체를 필요로 할 때, 따라서 좋은 :하지만 요약합니다.
- "QSharedPointer 클래스는 공유 포인터에 대한 강력한 참조를 보유하고 있으며 다른 QSharedPointer 객체가 참조하지 않는 한 그것이 범위를 벗어날 때 보유하고있는 포인터를 삭제합니다"따라서 소유권이 명확한 상처는 없지만 잃어 버리지 않고 메모리 누출이되지 않도록해야합니다. QWeakPointer은 소유권을 암시하지 않고 포인터를 공유하는 데 사용할 수 있습니다. 당신이 볼 수 있듯이
는 보호 포인터 클래스의 일부는 QObject를 트리를 사용할 수 있지만, 당신은 당신이 읽고 있는지 확인하고 그렇게하기 전에 설명서를 충분히 이해하거나 손상된 데이터 구조로 끝낼 수 있어야 .
나 같은 초보자를위한 기초를 다루는 QT 학습을위한 책을 권할 수 있습니까? QT4 서적으로 C++ GUI 프로그래밍을하고 있지만 많은 도움을 제공하지는 않습니다! – user1162272
책이 필요하지 않습니다. Qt 문서를 사용하십시오! 먼저 [튜토리얼] (http://developer.qt.nokia.com/doc/qt-4.8/tutorials.html)을 살펴보십시오. [클래스 참조] (http://developer.qt.nokia.com/doc/qt-4.8/classes.html)를 손에 들고 이해하지 못하는 것을 찾으십시오. CTRL + K를 누르고 "?"를 입력하여 Qt Creator를 사용하는 것이 좋습니다. Qt Creator 내에서 Qt 문서를 검색 할 수 있습니다. –
- 1. 메모리 할당 및 해제
- 2. 메모리 할당 해제
- 3. QList 메모리 할당 해제
- 4. openCV에서 메모리 할당 해제.
- 5. MIPS32 - 메모리 할당 해제
- 6. 메모리 할당 해제
- 7. Fortran의 동적 메모리 할당
- 8. 메모리 할당/할당 해제 (Windows C++)
- 9. 스택 메모리 할당 및 할당 해제 메커니즘
- 10. C# 메모리 할당 및 할당 해제 패턴
- 11. COCOA 객체 할당/할당 해제 + 메모리 최적화
- 12. cudamallocpitch가 할당 한 메모리 해제
- 13. linux에서의 메모리 할당 해제 C++?
- 14. 동적 메모리 할당 교재?
- 15. RECV 동적 메모리 할당
- 16. 동적 GPU의 메모리 할당
- 17. 동적 메모리 할당
- 18. 동적 메모리 할당 문제
- 19. 동적 메모리 할당
- 20. C++ 동적 메모리 할당
- 21. 동적 할당 - 메모리 관리
- 22. C에서의 동적 메모리 할당
- 23. VB6에서의 동적 메모리 할당
- 24. 동적 메모리 할당
- 25. fgets + 동적 메모리 할당 사용
- 26. auto_ptr에 대한 동적 메모리 할당
- 27. 자바 동적 메모리 할당 (힙)
- 28. C++ 동적 메모리 할당 제한
- 29. 2D 동적 메모리 할당 - ObjectiveC
- 30. __global__ 함수의 동적 메모리 할당
예를 들려 줄 수 있습니까? –