Alright, I tried some suggestions, and here's what I got. I'm gonna leave the #pragma once in for now, as I doubt my problem has anything to do with redefinitions at the moment. Also, I'm pretty sure #pragma once goes after the includes, so I'm gonna leave it at the bottom for now.
The error has shifted to pointing to the constructor implementation header:
error C2226: syntax error : unexpected type 'std::string'
My current code:
#include "SDL.h"#include <string>#include <vector>#pragma onceSDL_Rect RectZero = {0, 0, 0, 0};class Image{protected: SDL_Surface* sImage; SDL_Surface* sSource; SDL_Rect rSizeLocation;public: Image(const std::string& strImage = "", const SDL_Surface* sInputSurface = NULL, const SDL_Rect& rInputSizeLocation = RectZero); Image(Image& imgInput); virtual ~Image(void); virtual void Initialize(const std::string& strImage = "", const SDL_Surface* sInputSurface = NULL, const SDL_Rect& rInputSizeLocation = RectZero); virtual void Display(void) const; virtual const Image& operator=(Image& imgInput); SDL_Rect GetSizeLocation(void) const; const SDL_Surface* GetSurface(void) const;};
#include "SDLTools.h"Image(const std::string& strImage, const SDL_Surface* sInputSurface, const SDL_Rect& rInputSizeLocation) //This is the line the compiler is currently complaining about : sSource(sInputSurface), rSizeLocation(rInputSizeLocation), sImage(SDL_LoadBMP(strImage.c_str())){}