편집 기록

편집 기록
  • 프로필 알 수 없는 사용자님의 편집
    날짜2017.10.10

    "delete this"를 써도 되나요?


    new로 생성한 클래스의 인스턴스를 마지막에 지울 때, delete this;같이 써도 되나요?

    이렇게 쓰거나

    소스코드1

    void doStuff()
    {
        // this 객체는 working module이고
        // 다른 모듈로 바꾸고 싶을 때
    
        controller->setWorkingModule(new OtherModule());
    
        // 이제 Other module이 연산을 하고
        // this를 정리함
        delete this;
    }
    

    아니면 otherClass에서 this를 대신 죽이게 만들어도 되나요?

    소스코드2

    void doStuff()
    {
        otherClass.deleteMe(this); // void deleteMe(void *obj) { delete obj; }
    }
    
  • 프로필 장대근님의 편집
    날짜2016.01.27

    "delete this"를 써도 되나요?


    new로 생성한 클래스의 인스턴스를 마지막에 지울 때, delete this;같이 써도 되나요?

    이렇게 쓰거나

    소스코드1

    void doStuff()
    {
        // this 객체는 working module이고
        // 다른 모듈로 바꾸고 싶을 때
    
        controller->setWorkingModule(new OtherModule());
    
        // 이제 Other module이 연산을 하고
        // this를 정리함
        delete this;
    }
    

    아니면 otherClass에서 this를 대신 죽이게 만들어도 되나요?

    소스코드2

    void doStuff()
    {
        otherClass.deleteMe(this); // void deleteMe(void *obj) { delete obj; }
    }