클래스에서 정적 private 멤버를 선언하고 생성자에서 증분하는 것 외에도 내 객체가 살아 있는지 알 수있는 방법이 있나요? 소멸자에서 감소시킵니다. 미리 감사드립니다.내 개체가 C++에서 살아 있는지 어떻게 알 수 있습니까?
답변
shared_ptr/weak_ptr을 사용하여 STL을 사용하여 클래스에 간섭을주지 않을 수도 있습니다. 문제의 코드가 아닌 정적 메서드 내부에 살고있는 경우
stl::shared_ptr<YourClass> p = stl::make_shared(...); // holds a strong reference to your type
stl::weak_ptr<YourClass> wp(p);
cout << wp.use_count(); // "1"
p.reset();
cout << wp.use_count(); // "0"
하나 이상의 클래스 인스턴스가 인스턴스화되었는지 알고 싶습니까? 정적 카운터는 꽤 좋은 방법입니다. 그것은 어떻게 내가 어쨌든 그것을 할 것입니다. :)
죄송합니다, 나는 어떤 식 으로든 생성자와 소멸자를 수정할 수 없다고 진술해야합니다. – arai
은, 당신의 목적은 정의에 의해 "살아"입니다 -만큼 당신이 방법 내부에서 삭제와 같은 정통 일을하지 않는 한. 당신 있습니다가 (당신이 정말 당신이 무슨 일을하는지 알지 못한다면 권장되지 않는) 그 일을하는 경우
, 다음 포인터입니다 NULL
직후 항상 여부를 확인하기 위해 NULL
에 대해 this
을 비교할 있는지 확인하십시오 당신의 사물은 "살아있다".
누군가가 삭제 한 경우 개체가 살아 있는지 여부를 확인할 수있는 방법에 대한 대답이 없습니다. –
그리고 자신의 대답도 불완전하고 원래 클래스를 수정할 수 없다면 작동하지 않을 수 있습니다. 그러나 특정 상황에서 유용하기 때문에 다운 vote하지 않았습니다. – Spire
나는 그가 원래의 클래스를 지정할 수 있다고 믿는다. 그렇지 않다면 질문이 합리적이지 않을 것이다. –
- 1. 개체가 비어 있는지 어떻게 알 수 있습니까?
- 2. 특정 스레드가 살아 있는지 알 수 있습니까?
- 3. 개체가 이미 참조되어 있는지 어떻게 알 수 있습니까?
- 4. 클라이언트가 살아 있는지 알 수있는 방법
- 5. Pub/Sub 패러다임 : 구독자가 살아 있는지 알 수 있습니까?
- 6. 파이썬에 자식이 있는지 어떻게 알 수 있습니까?
- 7. 스레드가 C에서 얼마나 오래 살아 있는지 #
- 8. 개체가 무엇을 의미하는지 어떻게 알 수 있습니까?
- 9. 메모리 누수가 있는지 어떻게 알 수 있습니까?
- 10. 오픈 릴레이가 있는지 어떻게 알 수 있습니까?
- 11. 내 데이터가 항목 목록에 있는지 여부를 어떻게 알 수 있습니까?
- 12. IIS가 실제로 내 HTML을 압축하고 있는지 어떻게 알 수 있습니까?
- 13. asp.net 4.0이 내 서버에 설치되어 있는지 어떻게 알 수 있습니까?
- 14. 내 machine.config의 machineKey 섹션이 사용되고 있는지 어떻게 알 수 있습니까?
- 15. 내 사용자에게 500 오류가 있는지 어떻게 알 수 있습니까?
- 16. 내 코드가 어떤 모듈에서 실행되고 있는지 어떻게 알 수 있습니까?
- 17. 드라이브에 플로피가 있는지 어떻게 알 수 있습니까?
- 18. 요소가 화면에 있는지 어떻게 알 수 있습니까?
- 19. 요소가 목록에 있는지 어떻게 알 수 있습니까?
- 20. QLineEdit에 포커스가 있는지 어떻게 알 수 있습니까?
- 21. 특정 리소스가 있는지 어떻게 알 수 있습니까?
- 22. Dispatcher.DisableProcessing이 활성화되어 있는지 어떻게 알 수 있습니까?
- 23. Java에서 누수가 있는지 어떻게 알 수 있습니까?
- 24. 인터넷에 연결되어 있는지 어떻게 알 수 있습니까?
- 25. 파일이 있는지 여부를 어떻게 알 수 있습니까?
- 26. 파일이 비어 있는지 어떻게 알 수 있습니까?
- 27. 컨트롤이 시각화되고 있는지 어떻게 알 수 있습니까?
- 28. 개체가 영향을받는 시점과 그 원인을 어떻게 알 수 있습니까?
- 29. 개체가 NSArray의 개체에서 참조되는지 여부를 어떻게 빨리 알 수 있습니까?
- 30. 내 UITextView를 스크롤하면 어떻게 알 수 있습니까?
"살아 있니?" 나는 이것에 대한 대답은 "발신자가 발신자가 그것을 제어하고 있기 때문에 그것이 살아 있는지를 안다."와 같은 것이라고 생각한다. 그것이 살아 있는지 어떻게 알 수 있습니까? 어떤 목적으로이 것에 대해 묻고 있습니까? – tenfour
개체가 파괴 된 경우 개체의 메서드가 전혀 실행되지 않아야합니다. 메서드가 파기 된 후에 호출되면 프로그램에서 어딘가에 오류가 발생합니다. 개체가 살아 있거나 존재하지 않습니다. –
너무 나쁨 "아니요" 적절한 대답이 될만큼 문자가 충분하지 않습니다. –