나는 C++ Primer Plus by Stephen Frata을 읽습니다. 저는 6 장까지 읽었습니다. 즉, 포인터에 대해서 알았지 만 객체와 클래스에 대해서는 알지 못했습니다 (OOP에 대해 알고 있긴하지만).스마트 포인터가없는 포인터를 처리하는 방법은 무엇입니까?
ActionScript (Flash) 및 Java 배경에서 왔기 때문에 이전에는 포인터를 다루지 않았지만 이해합니다. 나는 그들에 관해 많은 질문을 가지고있다.
필자가 이해 한 것처럼 새로 만들기와 삭제를 쌍으로해야합니다. 즉, 포인터를 만드는 객체/함수가 그것을 해제해야합니다. 그러나 다음과 같은 단순한 팩토리 함수를 상상해보십시오.
SomeObject * createSomeObject(){
return new SomeObject;
}
상당히 문제가있는 것처럼 보입니다. 이 포인터를 누가 지금 비우는가?
내가 만든 포인터에 공개 액세스 권한을 부여하는 클래스를 만드는 경우 어떻게됩니까? 새/삭제 규칙 다음에이 클래스는 소멸자에서 포인터를 해제해야합니다. 그러나 포인터가 다른 클래스에 의해 사용되었을 수 있기 때문에 첫 번째 클래스를 파기하면 두 번째 클래스가 파손됩니다.
두 개의 심문은 비슷합니다. 포인터를 만든 사람이 아닌 다른 사람이 알고있는 포인터를 관리하려면 어떻게해야합니까?
참고 : 스마트 포인터가이 문제를 해결할 수 있다는 것을 알고 있지만 사람들이 없이는 어떻게하는지 궁금합니다.
'참고 : 스마트 포인터가이 문제를 해결할 수 있다는 것을 알고 있지만, 사람들이 그것 없이는 어떻게하는지 궁금합니다. '- 한마디로 말하면. :) – etarion
당신이 가지고있는 책이 해로울 수 있기 때문에 다른 책을 구입하고 싶을 수도 있습니다. http://accu.org/index.php?module=bookreviews&func=search&rid=1744 – sellibitze
@sellibitze 내 자바 배경이 주어지면 어떤 제안을하니? – subb