我在类B和类D中有一个成员函数,该成员函数调用函数“computeValue”,这不是任何类的成员函数。 “computeValue”函数执行某种类型的算法并返回一个值。但是,似乎我遇到了很多编译错误,并且不确定根本原因是什么。类的成员函数甚至可以调用非成员函数吗?

#include<iostream>
using namespace std;


int computeValue(vector<A*>ex) //Error - Use of undeclared identifier 'A'
{
    //implementation of algorithm
}

class A
{

};

class B
{

    int sam2()
    {
        return computeValue(exampleB); // Error - No matching function for call to 'computeValue
    }
    vector <A*> exampleB;

};

class D
{
    int sam1 ()
    {
        return computeValue(exampleD);//  Error - No matching function for call to 'computeValue
    }
    vector<A*> exampleD;
};

int main()
{

}

最佳答案

computeValue需要类A的声明,因此在它之前声明A:

class A
{
};

int computeValue(vector<A*>ex)
{
    //implementation of algorithm
}



当然,是的。

10-05 22:15