cpp recap on pointers and constructors