如何存储并初始化成员变量

2014-11-14 19:00:26 · 作者: · 浏览: 25

  成员变量必须在构造函数的初始化列表中完成初始化。Smart pointer members minimize dependencies while allowing exception safety。


  通过以指针存储成员变量的方法最小化依赖


  当成员变量的头文件非常大或者非常复杂;或者当你有大量的数据成员,并且不想减慢编译速度和强化相互依赖时。你会怎么做?简单来说就是将成员变量保存为指针形式,并用在类的构造函数中使用new为其分配空间。(在某种特殊的情况下,可用引用形式的成员变量代替)。同样要确保在析构函数中删除它们。下面是一段雏形代码。


  // User.h


  class PointerMember;


  class RefParam;


  class User


  {


  public:


  User( const RefParam &inParam );


  virtual ~User();


  private:


  PointerMember *mPointerMember;


  };


  // User.cpp


  #include "User.h"


  User::User( const RefParam &inParam )


  : mPointerMember( new PointerMember( inParam ) )


  {


  return;


  }


  User::~User()


  {


  delete mPointerMember;


  return;


  }