2012-12-08 1 views
0

하는 경우는 클래스가?포인터와 함께 RAII를 어떻게 사용할 수 있습니까? 내가 <code>classA Aobject</code> 쓰기하지만 글로벌 포인터를 선언하려면 어떻게해야합니까 때 RAII는 것으로 이해</p> <pre><code>class classA { public: int z = 5; }; </code></pre> <p>:

classA *Aobject; 
int main() 
{ 
    Aobject = new classA; //not RAII 

    cout << Aobject->z << endl; 

    return 1; 
} 
+1

개체를 전달하는 것은 무엇을 의미합니까? 귀하의 예제에서, 당신은 전역 포인터를 선언하고 있습니다. – juanchopanza

+0

나는 앞쪽에 선언 된 용어가 여기 있다고 생각했는데, 틀렸어야만한다. – andrew

+1

그것은 올바른 용어는 아니지만, 주로 포인터를 선언하고 있기 때문에 (포인터가 객체라고 생각하지 않는다면). – juanchopanza

답변

4

당신은 당신이 그것을 구성하기 위해 필요한 모든 매개 변수가 없습니다 아마도 때문에, 내가 무엇을 뜻 객체를 선언한다고 가정하지만, 당신이 바로 초기화하고 싶지 않아 적절하게 아직. 그 맞습니까? 스마트 포인터를 사용하십시오.

#include <memory> 
#include <iostream> 

std::unique_ptr<classA> Aobject; 
int main() 
{ 
    Aobject.reset(new classA); 

    cout << Aobject->z << endl; 

    return 1; 
} 
+0

네, 맞습니다. – andrew