completed abstract class in c++