changed .cc to .cpp
added class forward declaration and missing default constructor