类中用函数指针问题//cannot convert from 'double (__thiscall count::*)(double)' to 'double (__cdecl *)(double)'
eq613 2003-05-27 01:47:14 #include<iostream.h>
#include<math.h>
double m;
class count{
double x0,x1;
char a;
public:
double(*f)(double);
double fn1(double x);
double fn2(double x);
count(void )
{
cout<<" cin the a and x0 and x1\n";
cin>>a>>x0>>x1;
}
void fn(void )
{ double x2;
if(a=='1')
f=fn1;
else
f=fn2;
for(x2=x1-(f(x1)*(x1-x0))/(f(x1)-f(x0));fabs(x2-x1)>1e-5;)
{
cout<<" the x "<<x2<<endl;
x0=x1;
x1=x2;
x2=x1-(f(x1)*(x1-x0))/(f(x1)-f(x0));
}
cout<<" the last x is"<<x2<<endl;
}
};
double count:: fn1(double x)
{
m=x*exp(x)-1;
return m;
}
double count:: fn2(double x)
{
m=x*x*(x-3)-x+9;
return m;
}
void main()
{
count oop;
oop.fn();
}