클래스 선언을 분리해서 하는 것이 목표임...
<game.h>

#ifndef GAME_H #define GAME_H class Game { public: Game(); ~Game(); void Game::start(); }; #endif <game.cpp>#include "game.h" Game::Game() { } Game::~Game() { } void Game::start(){ }<main.cpp-1>#include "game.h" int main(void) { Game g1(); return 0; }<main.cpp-2>
#include "game.h" int main(void) { Game* g2 = new Game(); return 0; }<main.cpp-1>의 경우 빌드가 잘 되는데 <main.cpp-2>는 main.cpp.obj : error LNK2019: "public: __thiscall Game::Game(void)" (??0Game@@QAE@XZ) 외부 기호(참조 위치: _main 함수)에서 확인하지 못했습니다.untitled11.exe : fatal error LNK1120: 1개의 확인할 수 없는 외부 참조입니다.이런 링크 오류가 나옴
#ifndef GAME_H #define GAME_H class Game { public: Game() {}; ~Game() {}; void Game::start(); }; #endif그래서 헤더 파일에 생성자를 직접 선언해줬더니 빌드가 됨;;
이거 왜 이런거임? 생성자는 헤더/소스랑 분리 못함?