C++初始化数据成员

时间:2022-12-15 20:03:02

在C++初始化类的成员数据有两种方式
1. 在构造函数中实现

2. 定义初始化成员列表来初始化成员数据

class point
{
  private:
  int x,y;
  public:
  point(int m,int n)
  {
      x=m;
      y=n;
   }              
};

class point
{
  private:
  int x,y;
  public:
  point(int m=0,int n=0):x(m),y(n){}
};

这两种初始化成员数据方式有差别,用构造函数初始化成员数据其实就是用赋值来实现,用初始化成员列表则只是直接对数据成员进行初始化。具体在以下三种情况下使用初始化成员列表

1. 需要初始化的数据成员是对象

  如果需要初始化的数据成员是对象,则如果用构造函数初始化,则要调用该类的拷贝构造函数,产生临时对象,如果直接对该需要初始化的对象进行初始化,则会带来性能上的优异。

2. 需要初始化const修饰的数据成员

  const修饰的变量是不能进行赋值操作的,因此只能直接初始化

3. 需要初始化引用成员数据

  引用类型同const修饰的数据成员,也是只能进行初始化。