인프런 커뮤니티 질문&답변

himjh8170님의 프로필 이미지
himjh8170

작성한 질문수

[게임 프로그래머 입문 올인원] C++ & 자료구조/알고리즘 & STL & 게임 수학 & Windows API & 게임 서버

SceneManager.cpp에서 구문오류가 발생했습니다.

해결된 질문

작성

·

121

0

질문1.PNG안녕하세요 Rookiss님, 섹션11-3 Scene과SceneManager의 중간~32분 정도에서 작성중인 코드입니다.

이렇게 newScene에 DevScene()과 GameScene()을 넣는 부분에 형식지정자 없음과 구문 오류가 발생합니다... Scene클래스와 DevScene, GameScene 클래스 코드도 동영상을 몇번씩 돌려보면서 확인했는데 어디가 문제인지 잘 모르겠습니다... 혹시 어느 부분이 문제가 될지 확인 한 번 부탁드려도 될까요? 감사합니다!

답변 3

0

himjh8170님의 프로필 이미지
himjh8170
질문자

enum class SceneType

{

None,

DevScene,

GameScene,

};

 

원인을 찾았습니다!

enum을 정의할 때 class를 붙이지 않아서 그랬던거였네요... 너무 어이없는 실수라 몇번을 검수해도 못찾었나봐요ㅠㅠㅠㅠ 아무튼 해결되었습니다!

0

himjh8170님의 프로필 이미지
himjh8170
질문자

GameScene과 pch는 이렇게 되어있습니다ㅠㅠㅠㅠㅠ

 

 

질문3.PNG

 

질문4.PNG

 

0

안녕하세요, 인프런 AI 인턴입니다. himjh8170님.

제시해 주신 질문과 관련해서 문제가 발생하는 코드의 상황을 조금 더 구체적으로 알 수 있다면 더욱 도움을 드릴 수 있겠지만, 일반적으로 “형식지정자 없음과 구문 오류”는 여러 가지 원인으로 발생할 수 있습니다. 주로 다음과 같은 부분을 점검해 보시기를 권유드립니다:

  1. 클래스 정의 및 선언 확인: DevSceneGameScene 클래스가 Scene 클래스를 올바르게 상속하고 있는지 확인해 주세요. 예를 들어, public DevScene : Scene { ... } 형태로 선언되어 있어야 합니다.

  2. 헤더 파일 포함 여부: DevSceneGameScene의 헤더 파일이 SceneManager.cpp 파일에 제대로 포함되어 있는지 확인하세요. 이 문제는 #include "DevScene.h" 또는 #include "GameScene.h" 등의 코드를 확인하는 것을 포함합니다.

  3. 정의되지 않은 참조: 특정한 클래스나 함수가 실제로 구현되지 않았거나, 선언과 구현이 일치하지 않을 수 있습니다. 클래스 내 메서드가 올바르게 구현되고 있는지 확인이 필요합니다.

  4. 다형성 사용 확인: Scene 클래스 또는 그 이하 파생 클래스에서 가상 함수로 선언된 메서드가 있는지, 그리고 파생 클래스에서 해당 메서드를 올바르게 재정의했는지 확인하세요.

아래 유사한 해결 방법을 찾을 수 있는 게시물들을 참고하실 수 있습니다:
- Windows API SceneManager 동적할당 부분

위의 게시물에서, DevScene 이나 GameScene 관련 헤더의 추가 여부와 객체 생성 시 주의해야 할 일반적인 사항 등에 대한 내용이 논의되고 있습니다. 코드 내에서 발생하는 오류와 함께 에러 메시지를 더 구체적으로 확인하신 뒤, 기존의 질문들을 참고해 보시면 도움이 되실 겁니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

himjh8170님의 프로필 이미지
himjh8170
질문자

답변 감사드려요! 그런데 아직 해결이 되지 않았습니다ㅠㅠ

 

class DevScene : public Scene

{

class GameScene : public Scene

{

  1. 이렇게 상속하고 있습니다.

     

 

  1. SceneManager.cpp에 이렇게 헤더를 포함하고 있습니다.

#include "pch.h"

#include "SceneManager.h"

#include "DevScene.h"

#include "GameScene.h"

 

3, 4. 생성자/소멸자 Init(), Update(), Render()모두 virtual과 override를 이용해 작성되어있습니다.

 

링크해주신 글의 오류 부분은 이렇게 작성되어있습니다. 코드로 변경하니까 저렇게 보이네요.. 실제로는FILE과 LINE 앞뒤에 __가 붙어있습니다!

#ifdef _DEBUG

#define new new(_NORMAL_BLOCK, FILE, LINE)

#endif

himjh8170님의 프로필 이미지
himjh8170

작성한 질문수

질문하기