clean warnings
add MacroPatternMatch.h
add MacroPatternMatch.h to all cpp files
solve Protected function problem (public for parent, protected for child)