Originally posted by 反方向的钟 at 7/6/05 22:40:

这么写没什么问题啊?很明显,ptLazyliste是你指向的外部的一个已经存在的list对象,利用这个构造函数把它传给了LazyAktion的内部保护变量p_ptLazyListe以供LazyAktion自己来调用这个列表对象,逻辑上没有任何问 ...


内部消息不是大连的,是大连:P
%%%Neighborhood 07 looking forword%%%
Share |
Share

TOP

TOP

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

TOP

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

TOP

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


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

TOP

呵呵

TOP

给你个例子
a.h

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

private:

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

TOP

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

private:

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

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

有理,c++要学的东西太多了

TOP