fix a warning caused by member variables initialization order in constructor