首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

重载有错吗 ?该如何解决

2012-03-30 
重载有错吗 ?//抛物型方程(第三类边界条件)混合问题隐格式(向后差分)intPartialDiffEguation::ParabolaEqB

重载有错吗 ?
//抛物型方程(第三类边界条件)混合问题隐格式(向后差分)
int     PartialDiffEguation::ParabolaEqBack3(double   t_low,//横坐标左边界
double   t_up,//横坐标右边界
double   x_low,//纵坐标下边界
double   x_up,//纵坐标上边界
double   (*pro)(double   t,double   x),
double(*pre)(double   x),//初始条件
double   (*pro1)(double   t),//   左边界条件
double   (*pro2)(double   t),//   右边界条件
double   k,//边界条件的k值
double   a,//参数a
double   at,//时间剖分的精度
double   h,//空间剖分的精度
CMatrix   &rlt//计算结果
)
{
int   N,M;
M=(int)   ((t_up-t_low)/at);
N=(int)   ((x_up-x_low)/h);
rlt.Resize(M+1,N+1);
int   i;

//根据初始条件进行初始化
for(i=0;i <=N;i++)
rlt[0][i]=(*pre)(x_low+h*i);

//网格比
double   r=a*at/(h*h);


  。。。。。


类的声明如下:

class   PartialDiffEguation
{
public:
//椭圆型方程   (第一类边界条件)五点差分格式,矩形区域
static   int   EllipseEq1(double   x_low,//横坐标左边界
double   x_up,//横坐标右边界
double   y_low,//纵坐标下边界
double   y_up,//纵坐标上边界
double   (*pro)(double   x,double   y),
double(*prox1)(double   x0),//左边界条件
double   (*prox2)(double   xu),//   右边界条件
double   (*proy1)(double   y0),//下边界条件
double   (*proy2)(double   yu),//上边界条件
double   h1,//水平剖分的精度
double   h2,//纵向剖分的精度
CMatrix   &rlt//计算结果
);

//椭圆型方程(第二类边界条件)五点差分格式,矩形区域
static   int   EllipseEq2(double   x_low,//横坐标左边界
double   x_up,//横坐标右边界
double   y_low,//纵坐标下边界
double   y_up,//纵坐标上边界
double   (*pro)(double   x,double   y),
double(*prox1)(double   x0),//左边界条件
double   (*prox2)(double   xu),//   右边界条件
double   (*proy1)(double   y0),//下边界条件
double   (*proy2)(double   yu),//上边界条件
double   h1,//水平剖分的精度
double   h2,//纵向剖分的精度
CMatrix   &rlt//计算结果
);

//椭圆型方程(第三类边界条件)五点差分格式,矩形区域
static   int   EllipseEq3(double   x_low,//横坐标左边界
double   x_up,//横坐标右边界
double   y_low,//纵坐标下边界
double   y_up,//纵坐标上边界
double   (*pro)(double   x,double   y),
double(*prox1)(double   x0),//左边界条件
double   (*prox2)(double   xu),//   右边界条件
double   (*proy1)(double   y0),//下边界条件
double   (*proy2)(double   yu),//上边界条件
double   kv,
double   h1,//水平剖分的精度
double   h2,//纵向剖分的精度
CMatrix   &rlt//计算结果
);

//抛物型方程(第一类边界条件)混合问题显格式(向前差分)
static   int     ParabolaEqFront(double   t_low,//横坐标左边界
double   t_up,//横坐标右边界
double   x_low,//纵坐标下边界
double   x_up,//纵坐标上边界
double   (*pro)(double   t,double   x),
double(*pre)(double   x),//初始条件
double   (*pro1)(double   t),//   左边界条件
double   (*pro2)(double   t),//   右边界条件
double   a,//参数a
double   at,//水平剖分的精度
double   h,//纵向剖分的精度
CMatrix   &rlt//计算结果
);


//抛物型方程(第二类边界条件)混合问题显格式(向前差分)
static   int     ParabolaEqFront2(double   t_low,//横坐标左边界
double   t_up,//横坐标右边界
double   x_low,//纵坐标下边界
double   x_up,//纵坐标上边界
double   (*pro)(double   t,double   x),
double(*pre)(double   x),//初始条件
double   (*pro1)(double   t),//   左边界条件
double   (*pro2)(double   t),//   右边界条件
double   a,//参数a


double   at,//水平剖分的精度
double   h,//纵向剖分的精度
CMatrix   &rlt//计算结果
);


//抛物型方程(第一类边界条件)混合问题隐格式(向后差分)
static   int     ParabolaEqBack(double   t_low,//横坐标左边界
double   t_up,//横坐标右边界
double   x_low,//纵坐标下边界
double   x_up,//纵坐标上边界
double   (*pro)(double   t,double   x),
double(*pre)(double   x),//初始条件
double   (*pro1)(double   t),//   左边界条件
double   (*pro2)(double   t),//   右边界条件
double   a,//参数a
double   at,//时间剖分的精度
double   h,//空间剖分的精度
CMatrix   &rlt//计算结果
);


//抛物型方程(第二类边界条件)混合问题隐格式(向后差分)
static   int     ParabolaEqBack2(double   t_low,//横坐标左边界
double   t_up,//横坐标右边界
double   x_low,//纵坐标下边界
double   x_up,//纵坐标上边界
double   (*pro)(double   t,double   x),
double(*pre)(double   x),//初始条件
double   (*pro1)(double   t),//   左边界条件
double   (*pro2)(double   t),//   右边界条件
double   a,//参数a
double   at,//水平剖分的精度
double   h,//纵向剖分的精度
CMatrix   &rlt//计算结果
);


//抛物型方程(第三类边界条件)混合问题显格式(向前差分)
static   int     ParabolaEqFront3(double   t_low,//横坐标左边界
double   t_up,//横坐标右边界
double   x_low,//纵坐标下边界
double   x_up,//纵坐标上边界
double   (*pro)(double   t,double   x),
double(*pre)(double   x),//初始条件
double   (*pro1)(double   t),//   左边界条件
double   (*pro2)(double   t),//   右边界条件
double   k,//边界条件的k值
double   a,//参数a
double   at,//时间剖分的精度
double   h,//空间剖分的精度
CMatrix   &rlt//计算结果
);


//抛物型方程(第三类边界条件)混合问题隐格式(向后差分)
static   int     ParabolaEqBack3(double   t_low,//横坐标左边界
double   t_up,//横坐标右边界
double   x_low,//纵坐标下边界
double   x_up,//纵坐标上边界
double   (*pro)(double   t,double   x),
double(*pre)(double   x),//初始条件
double   (*pro1)(double   t),//   左边界条件
double   (*pro2)(double   t),//   右边界条件
double   a,//参数a
double   at,//时间剖分的精度
double   h,//空间剖分的精度
CMatrix   &rlt//计算结果
);


//双曲型方程(显格式)
static   int   hyperbolaEq(double   t_low,//时间下边界
double   t_up,//时间上边界
double   x_low,//空间下边界
double   x_up,//空间上边界
double   (*pro)(double   t,double   x),
double(*pre)(double   x),//初始条件
double   (*pro1)(double   x),//   第一初始条件
double   (*pro2)(double   x),//   第二初始条件
double   (*pro3)(double   t),//   下边界条件
double   (*pro4)(double   t),//   上边界条件
double   a,//参数a
double   at,//时间剖分的精度
double   h,//空间剖分的精度
CMatrix   &rlt//计算结果
);
};


出现的错误如下:

error   C2511:   'ParabolaEqBack3 '   :   overloaded   member   function   'int   (double,double,double,double,double   (__cdecl   *)(double,double),double   (__cdecl   *)(double),double   (__cdecl   *)(doub
le),double   (__cdecl   *)(double),double,double,double,double,class   CMatrix   &) '   not   found   in   'PartialDiffEguation '
                c:\euler.h(36)   :   see   declaration   of   'PartialDiffEguation '
Error   executing   cl.exe.

------解决方案--------------------


static int ParabolaEqBack3(double t_low,//横坐标左边界
double t_up,//横坐标右边界
double x_low,//纵坐标下边界
double x_up,//纵坐标上边界
double (*pro)(double t,double x),
double(*pre)(double x),//初始条件
double (*pro1)(double t),// 左边界条件
double (*pro2)(double t),// 右边界条件
double a,//参数a
double at,//时间剖分的精度
double h,//空间剖分的精度
CMatrix &rlt//计算结果
}
=======> 函数声明有12个参数,
但是:

int PartialDiffEguation::ParabolaEqBack3(double t_low,//横坐标左边界
double t_up,//横坐标右边界
double x_low,//纵坐标下边界
double x_up,//纵坐标上边界
double (*pro)(double t,double x),
double(*pre)(double x),//初始条件
double (*pro1)(double t),// 左边界条件
double (*pro2)(double t),// 右边界条件
double k,//边界条件的k值
double a,//参数a
double at,//时间剖分的精度
double h,//空间剖分的精度
CMatrix &rlt//计算结果
)
======> 函数实现却有13个参数!

热点排行