Это потому, что заголовок функции должен быть точно таким же.
//cpp file
void A::function(int a, int b, vector<B>* c) { }
//header file
Class B {
public:
int q;
};
class A {
public:
void function(int a, int b, vector<B> *line);
};
или:
//cpp file
void A::function(int a, int b, vector<B>& c) { }
//header file
Class B {
public:
int q;
};
class A {
public:
void function(int a, int b, vector<B> &line);
};
Однако при вызове функции в первом случае вы должны заменить *
на &
при передаче объекта, чтобы локальный указатель получил адрес переданного объекта. Или передайте указатель вручную.