Use constructors instead of init() functions

Has changes which require a compiler that implements C++11 "universal initialization" syntax.