派生类初始化的困惑。
我的问题是这样的,
我先有一个基类linearList
如下
class linearList
{
public:
linearList(int size);
~linearList();
};
当我从linearList派生出linearListExt时,
我想先调用linearList的构造函数,
我用下边的方法是行的。
class linearListExt:public linearList
{
public:
linearListExt(int maxSize=10):linearList(maxSize)
{
//linearListExt的构造函数
};
half();
};
问题是
但是我不想把linearListExt的构造函数写在类的定义里,于是我写成,
class linearListExt:public linearList
{
public:
linearListExt(int maxSize=10):linearList(maxSize);
half();
};
linearListExt::linearList(int maxSize=10)
{
//linearListExt的构造函数
}
或者是
class linearListExt:public linearList
{
public:
linearListExt(int maxSize=10):linearList(maxSize);
half();
};
linearListExt::linearList(int maxSize=10):linearList(maxSize)
{
//linearListExt的构造函数
}
都是不行的,应该怎么写呢?
还有一个问题就是,
要是我的基类有几个不同的构造函数,我想在派生类中选择一个调用,可是基类构造函数的调用又不能写在
派生类的构造函数里,那该怎么办呢?
觉得delphi在这方面都强大的。
问题点数:100、回复次数:3Top
1 楼xiner(叉叉)回复于 2002-09-17 14:47:11 得分 40
class linearListExt:public linearList
{
public:
linearListExt(int maxSize=10);
half();
};
linearListExt::linearList(int maxSize):linearList(maxSize)
{
//linearListExt的构造函数
}
Top
2 楼cwanter(亚玛逊河上的渔夫)回复于 2002-09-17 14:57:29 得分 20
linearListExt(int maxSize=10):linearList(maxSize); 这个声明是错误的。linearListExt(int maxSize=10):linearList(maxSize)
{
//linearListExt的构造函数
}; 行,是因为这是定义,不是声明。
象xiner(叉叉) 那样改,一切OK。Top




