当前位置:   article > 正文

c++程序改错_expected type-specifier before ‘;’ token

expected type-specifier before ‘;’ token
  1. #include<iostream>
  2. #include<iomanip>
  3. #include<cmath>
  4. using namespace std;
  5. class function
  6. {
  7. public:
  8. virtual double operator()(double x)const=0;
  9. virtual ~function();
  10. };
  11. class myfunction:public function
  12. {
  13. public:
  14. double operator()(double x)const
  15. {
  16. return log(1.0+x)/(1.0+x*x);
  17. }
  18. };
  19. class integration
  20. {
  21. public:
  22. virtual double operator()(double a,double b,double eps)const=0;
  23. virtual ~integration();
  24. };
  25. class trapz:public integration
  26. {
  27. public:
  28. virtual double operator()(double x,double y,double eps)const;
  29. trapz(const function &f):f(f){}
  30. private:
  31. const function &f;
  32. };
  33. double trapz::operator() (double a,double b,double eps)const
  34. {
  35. bool done=false;
  36. int n=1;
  37. int h=b-a;
  38. double tn=(f(a)+f(b))*h/2;//当n=1时,利用公式tn=h(f(x)+f(x+1))/2
  39. double t2n;
  40. do
  41. {
  42. double sum=0;
  43. for(int k=0;k<n;k++)
  44. {
  45. double x=a+(k+0.5)*h;//h=(b-a)/n,xk=a+kh,t2n=h(f(xk)+f(xk+1))/4+hf(xk+1/2)/2
  46. sum=sum+f(x);
  47. }//进行二分,利用递推公式计算新的积分值
  48. t2n=(tn+h*sum)/2.0;
  49. if(fabs(t2n-tn)<eps)
  50. done=true;
  51. else//进行判断,如果两次计算积分值的差在所给定的误差范围之内,二分后的积分值就是所求得的积分,若不是,则返回第二步,继续执行
  52. {
  53. tn=t2n;
  54. n=n*2;
  55. h=h/2;
  56. }
  57. }while(!done);
  58. return t2n;
  59. }
  60. int main()
  61. {
  62. myfunction m;
  63. trapz t(m);
  64. cout<<t.operator(0,2,1e-7)<<endl;
  65. return 0;
  66. }

哪位大神可以帮我看一下为什么在cout<<t.operator(0,2,1e-7)<<endl这条语句始终报错,我觉得没毛病呀,谢谢啦~

64    18    C:\Users\24864\Desktop\变步长梯形积分.cpp    [Error] expected type-specifier before '(' token

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/121233
推荐阅读
相关标签
  

闽ICP备14008679号