편집 기록

편집 기록
  • 프로필 유동욱님의 편집
    날짜2018.08.16

    C++ 에서 부모 자식 클래스 OUTPUT 관련 질문입니다. output 의 흐름이 어떻게 되는 건지 설명해주시면 정말 감사하겠습니다.


    It is the Answer.

    A()
    B(int)
    C(int)
     ~C() 
    ~B() 
    ~A()
    

    근데 왜 이런 답이 나왔는지 흐름을 모르겠습니다.

    class A {
    public:
      A() { cout << “A()\n”; }
     ~A() { cout << “~A()\n”; }
    }
    
    class B : public A
     {
     public:
     B() { cout << “B()\n”; }
     B(int i) { cout << “B(int)\n”; }
     ~B() { cout << “~B()\n”; }
    }
    
    class C : public B {
     public:
     C() { cout << “C()\n”; }
     C(int i) : B(i) { cout << “C(int)\n”; }
     ~C() { cout << “~C()\n”; } 
     }
    
    void main() {
     C *b = new C(3);
     delete b;
    }
    
  • 프로필 알 수 없는 사용자님의 편집
    날짜2018.08.16

    C++ 에서 부모 자식 클래스 OUTPUT 관련 질문입니다. output 의 흐름이 어떻게 되는 건지 설명해주시면 정말 감사하겠습니다.


    It is the Answer.

    A() B(int) C(int) ~C() ~B() ~A()

    근데 왜 이런 답이 나왔는지 흐름을 모르겠습니다.

    class A { public: A() { cout << “A()\n”; } ~A() { cout << “~A()\n”; } }

    class B : public A { public: B() { cout << “B()\n”; } B(int i) { cout << “B(int)\n”; } ~B() { cout << “~B()\n”; } }

    class C : public B { public: C() { cout << “C()\n”; } C(int i) : B(i) { cout << “C(int)\n”; } ~C() { cout << “~C()\n”; } }

    void main() { C *b = new C(3); delete b; }