这样子继承类居然不行,怪事
基类.h
class TJs_Base : public TThread
{
private:
protected:
void __fastcall Execute();
public:
__fastcall TJs_Base(bool CreateSuspended,
);
static TJs_Base * CreateJs(int nID); //初始化计算类
};
基类CPP
__fastcall TJs_Base::TJs_Base(bool CreateSuspended
)
: TThread(CreateSuspended)
{
}
TJs_Base * TJs_Base::CreateJs(int nID)
{
switch (nID)
{
case 0:
pJs_Math = new TJs_Qd; //这里出错 其中 pJs_Math是在外部 声明的变量 TJs_Base *pJs_Math;
break;
default:
return NULL;
}
return pJs_Math;
}
//------------------
子类TJs_Qd .h
class TJs_Qd : public TJs_Base
{
public:
//声明的函数
protected:
};
子类 TJs_Qd .cpp
出错提示
[C++ Error] Js_Base.cpp(90): E2125 Compiler could not generate default constructor for class 'TJs_Qd'
//声明的函数
TJs_Qd(bool CreateSuspended):TJs_Base(CreateSuspended){} //写上构造函数。
TJs_Qd():TJs_Base(false){} //写上构造函数。
protected:
};
//上面那样处理后,就可以这样用了:
pJs_Math = new TJs_Qd;
其实不建议这样做。线程类构造函数多一个参数CreateSuspended是很有必要的。