class room
{
  public:
    int *p;
    int m;
    room(int i):m(i){p=new int;}
  .....
}
这里的room(int i):m(i){p=new int;}什么意思,特别是m(i)什么含义啊?
谢谢!

解决方案 »

  1.   

    room(int i):m(i){p=new int;}相当于:
    room(int i )
    {
       m = i;
       p = new int;
    }
      

  2.   

    那为什么写成这种形式room(int i):m(i){p=new int;},
    和你说的那种形式有什么区别吗?
      

  3.   

    int m 
    m也是一个对象,不过是int型的而已。
    当然可以用
    m(i)这种形式的初始化。
      

  4.   

    它把函数定义写在类定义中,就相当于内联函数
    room(int i):m(i) 是构造函数的初始化列表中对成员变量进行初始化,这和在构造函数体中对成员变量进行初始化效果一样,但效率不同,前者较高