What is that?
It's the .cpp file to the .h I don't see a problem with that line of code. I also listed the .cpp in my posts soooooooo what's up?
The problem is that you cannot use your SmartImage header in two or more files across your project. Each time you include SmartImage.h, it will also include SmartImage.cpp and all its definitions. If you include SmartImage.h in more than one file in your project, you will consequently have more than one definition of each of the class member functions and the linker will fail to do its job.
Add the file SmartImage.cpp to your project instead and compile it as a separate function. And, as the file is shown at the moment, it has to include the necessary headers as well in order to compile properly.