build up basic framework and correct typo

basic framework -> extensible virtual constructor
typo -> ClassTemplete -> ClassTemplate
create a new virtual function in class_template.h

CreateSpecificQuestionPointer()

it returns the pointer of a local temp instance.
not pointer of static instance.