请求成员...非class类型

request for member ... which is of non-class type

我收到错误

main.cpp: In function 'int main()':
main.cpp:43:16: error: request for member 'getF' in 'cor', which is of non-class type 'corMatrixFermion(MatrixV)'
  myfile << cor.getF;
                ^

这是我的 class 的页眉:

class MatrixV{
  public:
    MatrixV(std::string file);
    MatrixV(Eigen::MatrixXd matrix);
    MatrixV(double arr[], int arrsize);

    Eigen::MatrixXd getV();
    Eigen::VectorXd getSigma();
    int getr(); 
    Eigen::MatrixXd getO1();
    Eigen::MatrixXd getO2();
    Eigen::MatrixXd getE(); 
    Eigen::MatrixXd getVStrich();

private:
    int size;
    Eigen::MatrixXd V;
    Eigen::VectorXd Sigma;
    int r;
    Eigen::JacobiSVD<Eigen::MatrixXd, Eigen::NoQRPreconditioner> svd;
};

这里是 main.cpp

int main(){
std::srand(time(0));

DataFromFile StartValues("StartValues");

double arr[4];
arr[0]  = StartValues.get(1);
arr[1]  = StartValues.get(2);
arr[2]  = StartValues.get(3);
arr[3]  = StartValues.get(4);

MatrixV V(arr, 4);
corMatrixFermion cor(MatrixV V);

std::ofstream myfile;
myfile.open ("corfunction.txt");
myfile << cor.getF();
myfile.close();
}

还有其他 classes 涉及,但我不认为它们会导致问题。你明白吗,我做错了什么?如果您需要更多信息,请告诉我。在我看来,这不是通常的 "request for member"-constructor-problem。但也许我错了...

这看起来很狡猾:

corMatrixFermion cor(MatrixV V);

这是在声明 cor 是一个函数。您可能打算将 V 传递给 corMatrixFermion 构造函数:

corMatrixFermion cor(V);