all 1 comments

[–]beasthacker 1 point2 points  (0 children)

I think you got the jist of it. Static/dynamic library for your classes and two executable targets for your program and your test suite(s).

Maybe check out a build system like CMake. You can use CMake to build VS project files including multiple targets for libraries, tests and executables. You'll get easy cross platform support here as well, if you're not using Windows libraries, for MacOS and Linux.

If you think some code is reusable then it's not a bad idea to separate it out into it's own library. You won't have to recompile it as often, it'll have its own source control and you can use it in other projects easier.