제 목 메서드 클래스 재정의 오류가 납니다.
작성자 우대식 등록날짜 2022-02-08 17:45:18 / 조회수 : 366
강좌명 [패키지] 게임 프로그래밍 취업 완성 패키지
첨부파일
  • 수고하십니다, 예제를 보면서 코딩중에 계속해서 오류가 나서 질문드립니다.

    WinAPI 게임 프레임워크 강의에서 기존에 해오던 예제의 코드를 나누어서 클래스에 옮기는 부분이 있었는데요.

     

    강의에서는 코드를 옮기고 멤버 변수를 재 선언 한 이후 실행시켰을때에 문제없이 실행되는 모습이 보였는데

    제가 예제를 보면서 만든 코드는 기본 클래스 메서드를 재정의 하지 않았다는 오류가 나오는데

    검색해서 찾아보니 '기본 클래스를 정의하지 않았다'&'함수가 존재 하지 않는 함수를 재정의 하려고 했다' 고 하는데,

    MainGame 클래스는 생성할때부터 GameNode 클래스의 자식 클래스로 생성했고,

    강의에서도 GameNode 클래스에서는 순수 가상함수로 바꿔서 사용했기 때문에 문제가 없다고 판단이 됐는데 계속 해서 오류가 나타납니다.

     

    오류를 찾는 과정에서 헤더의 중복된 사용이 문제인건가 싶어

     MainGame.cpp 에 framework.h  헤더를 Include 시켜서 사용해봤는데, 

    멤버변수에서 '알수 없는 재정의 지정자'라는 컴파일 오류가 나서 진행이 되지 않습니다. (이쪽은 어디서 문제가 생긴것인지도 모르겠습니다.)

     

    오류를 해결할 방법을 찾아봐도 어디에서 문제가 생긴건지, 그리고 어떻게 해결해야할지 모르겠어서 질문드립니다.

     

    ------------------------------------

     

    #pragma once
    #include "GameNode.h"


    class MainGame : public GameNode
    {
    private:


    private:
        POINT           m_ptPos1;                                    
        RECT            m_rtBox1;                                            
        float           m_fMoveSpeed;
        int             m_nScore;
        int             m_nLevel;

        struct tagBox
        {
            RECT    rt;
            float   speed;
        };

        vector  m_vecBox;                                                        
        int             m_nDelay;

    public:

        MainGame();
        ~MainGame();

        virtual void Init() override;
        virtual void Update() override;
        virtual void Render() override;

    };

  • 작성자 : 게임클래스 / 등록날짜 : 2022-02-08 17:48:46 / 첨부파일 : 4강 충돌검사.zip
  • 안녕하세요 게임클래스 입니다.

    아무래도 클래스부분에 대한 내용이다 보니

    클래스간 헤더 선언등 다양한 부분에서의 확인이 요구 됩니다.

     

    해당 부분의 코드 보다는 

    Debug 폴더를 제외한 솔루션 자체를 업로드해주시면

    좀더 상세한 파악이 가능할듯 합니다.

     

    --------------추가 답변---------------

    함수의 재정의 부분은 헤더파일을 인클루드 하는 순서에 의해 결정됩니다.

    재정의를 위해선 이미 정의가 되어 있어야하기 때문에 재정의의 경우

    헤더의 인클루드 순서를 확인하는것이 중요합니다.

     

    제가 코드를 수정하며 인클루드 하는 순서를 변경하여

    함수 재 정의 순서에 대해 수정을 해 두었으니 비교해 보시기 바랍니다.

    다만.. 함수 재정의 순서를 고쳐놨더니 전역변수가 읽히지 않는 문제가 있습니다.

    어떤 전역변수를 어디에서 사용하는지에 대해서 까지는 보지 않았기 때문에

    이부분은 수정되지 않았습니다.

    코드 분석하셔서 재정의 순서를 이렇게 가져가야 한다!!

    에 대해서만 이해 하시면 될 것 같습니다.

    감사합니다

    ---------------------------------------------------------------

     

     

     

     

     

    감사합니다.

댓글 2개
  • 우대식 [ 2022-02-09 01:20:59 ]
  • 이미 작성한 코드를 압축파일로 첨부하긴 했는데, 어떤 파일을 말씀하시는건지 이해가 가지 않아서요.
    어떤 파일을 올려드려야 하는지 알려주실 수 있으신가요?
  • 게임클래스 [ 2022-02-09 12:12:34 ]
  • 아 파일이 있었네요 확인하고 답변 드릴께요~