|
int main()
{
ProcessState* pro(ProcessState::self());
}
pro가 포인터네요. 인자도 포인터이구요.
쉽게 설명해서 다음과 같이 해석된다고 보면 됩니다.
int main()
{
ProcessState* pro = ProcessState::self();
}
c++왕초보 님이 쓰신 글 :
: class ProcessState
: {
: private:
: ProcessState() {}
:
: ProcessState( const ProcessState&);
: void operator=( const ProcessState& );
:
: public:
: static ProcessState* self()
: {
: if ( sInstance == 0 )
: sInstance = new ProcessState;
: return sInstance;
: }
: };
: int main()
: {
: ProcessState* pro(ProcessState::self());
: }
:
: 궁금한 점이 있습니다.
:
: ProcessState* pro(ProcessState::self()); <--- 요 문장이 ProcessState 의 생성자를 sInstance 객체를 가지고 호출하는 문구로 이해했는데, 위에 보면 private 영역에 선언만 하고 구현부가 없습니다.
:
: 그럼 pro 에다가 복사가 안되고 에러가 나야 할 것 같은데 정상 동작을 합니다.
:
: 어떻게 된것일까요?
|