我在class NumberArray中有NumberArray.h

class NumberArray
{
 private:
  double *aPtr;
  int arraySize;



public:
  NumberArray(NumberArray &);
  NumberArray(int size, double value);
  NumberArray() { if (arraySize > 0) delete[] aPtr; }
  void print() const;
  void setValue(double value);

};

在我的cpp文件NumberArray.cpp中,我定义了构造函数
NumberArray(NumberArray &)

通过
NumberArray::NumberArray(NumberArray &obj)
{
  arraySize = obj.arraySize();
  aPtr = new double[arraySize];
  for (int index = 0; index < arraySize; index++)
    {
      aPtr[index] = obj.aPtr[index];
    }
}

据我所知,这应该行得通。但是,我收到一个错误“明显调用的括号前面的表达式必须具有(pointer-to-)函数类型。

我以为我已经有了指向功能的类型...

有人可以帮我解决我的问题吗?

最佳答案

arraySize = obj.arraySize();
arraySize是类成员。这不是一个类方法。应该是:
arraySize = obj.arraySize;

关于c++ - 表达式无法识别函数C++中的指针,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36732108/

10-10 20:31