学生有一段程序不太懂,关于info2 prati.请教拉

#include <list>
using namespace std;

// Oberklasse LazyAktion
template <class T>
class LazyAktion
{
   public:
           LazyAktion( list<T>* ptLazyListe )
                  : p_ptLazyListe( ptLazyListe ) {}
      virtual ~LazyAktion() {}
      virtual void vAusfuehren() = 0;
   protected:
      list<T>*        p_ptLazyListe;        // Zeiger auf p_ListeObjekte
};


// LazyPushFront
template <class T>
class LazyPushFront : public LazyAktion<T>
{
   public:
      LazyPushFront(const T& einObjekt, list<T>* eineListe)
                      : LazyAktion<T>(eineListe)
                      , p_tObjekt(einObjekt) {}
      virtual ~LazyPushFront() {}
      void vAusfuehren() { p_ptLazyListe->push_front(p_tObjekt); }
   private:
      T        p_tObjekt;
};
看这一段  LazyAktion( list<T>* ptLazyListe )
                  : p_ptLazyListe( ptLazyListe ) {}相当于 { p_ptLazyListe= ptLazyListe}
p_ptLazyListe( ptLazyListe ) 这是什么玩意儿阿,变态老师让我们填写这个类定义,上面是他写的部分,我害怕有这种初始化方式,到底这可行吗?谢谢啦

TOP

void A(int a)
  :age(a)
是一种初始化的方式,这种方式只能用于一个类的构造函数
一般是在“:”后面先跟父类的构造函数,然后跟“,”接下来就是自己的成员变量的初始化
格式是    成员变量(初始化值),几个成员变量的初始化之间用“;”分隔

例如

a.h

Class A
{
public:
void A(int a)
  :age(a)
{}

private:

int age;
}


b.h

Class B : public A
{
public:
void B(int a, double b, double h=175)
:A(a),
weight(b),
height(h)
{}

private:

double weight;
double height;
}

需要注意的是double h=175,这种方式是当你对一个B的变量初始化时,只输入了2个参数,这个时候height会取默认值175
例如

B* dalian;
dalian = new B(18,100,150);  // 这句表示dalian年方18,体重100kg,身高150cm
delete dalian;
dalian = new B(18,100); // 这句由于没给身高,所以身高在初始化的时候会取默认值175cm

注意:有默认值的参数必须放在参数列表的最后。

B::B(int a, double height = 175, double weight)

上面这样是错误的

[ Last edited by 驴子 on 2005-6-8 at 12:54 ]
冬冤家,我有心将你打,却一个心儿怕;要不打,只恨你这冤家羞人煞;罢罢罢,低眉红了脸儿帕,嫁了吧!

TOP

上面那段代码和下面这段是等效的
Class A
{
public:
void A(int a)
{
    age = a;
}

private:

int age;
}
冬冤家,我有心将你打,却一个心儿怕;要不打,只恨你这冤家羞人煞;罢罢罢,低眉红了脸儿帕,嫁了吧!

TOP

给你个例子
a.h

Class A
{
public:
void A(int a)
  :age(a)
{}

private:

int age;
}
冬冤家,我有心将你打,却一个心儿怕;要不打,只恨你这冤家羞人煞;罢罢罢,低眉红了脸儿帕,嫁了吧!

TOP

呵呵

TOP

Originally posted by dalian at 7/6/05 22:53:
hehe ,今天没事了,关键是没发烧,就放心了


:D
%%%Neighborhood 07 looking forword%%%

TOP

赫赫,困了。大家都还没睡。都挺强的,呵呵,哥们撑不住了,先睡了

TOP

hehe ,今天没事了,关键是没发烧,欧就放心了

TOP

dozingoff.

TOP