首页 > 解决方案 > 使用 ostream 和打印功能进行打印,具有内部功能

问题描述

我想打印多项式。我不知道这是语法问题还是我只是不明白

class polynom : public func {
  public:
  polynom(const int order, int* ptr_array); 
  polynom(const polynom& polynom_); 
  void printcoefs(ostream&)  const ;
  friend polynom operator+(polynom const &, polynom const &) ;
  friend polynom operator-(polynom const &, polynom const &);
  friend polynom operator*(polynom const &, polynom const &);
  polynom operator=(polynom const & poly) { //assignment operator
      int* ptr = new int[poly.n_ + 1];
      for (int i = 0; i < poly.n_ + 1; i++)
          ptr[i] = poly.coefs_[i];
      return polynom(poly.n_, ptr);
      }
  polynom Derivative();
  polynom Integral();
  int funcout(const int& x) const;
  friend ostream & operator<<(ostream& out, const polynom& polynom_);
  ~polynom();
  void Print(ostream& out) const;

protected:
  int n_; //order of the polynom
  int* coefs_; //coefficients 
};

这是我为打印功能写的

  void polynom::Print(ostream &out) const {
     printcoefs(cout);
     cout << endl;
     cout << "Derivative: ";
     polynom der=this->Derivative;  <-error here
     der.printcoefs(cout);
     cout << endl;
     polynom inte =this->Integral;
     cout << "Integral: ";
     inte.printcoefs(cout);
     cout << endl;
  }
ostream & operator<<(ostream & out, const polynom & polynom_)
 {
    polynom_.Print(out);
     return out;
 }

它给了我错误 C3867 'polynom::Derivative': non-standard syntax; 如果我这样写,请使用“&”创建指向成员的指针。错误 C2276 '*': 对绑定成员函数表达式的非法操作,如果我尝试使用“this”作为指针。任何帮助将不胜感激

标签: c++11

解决方案


推荐阅读