C++类 - 如何将自定义类型的向量传递给函数

Zak*_*nry 0 c++ parameters arguments class vector

我正在尝试开发一个具有函数的类,该函数可以将项目的向量作为其参数.

如果我使用int类型的矢量或其他原语,我可以让它工作正常,但我无法使用对象向量.

例如:

在我的头文件中:

int influenceParticles(vector<Particle> particles);
Run Code Online (Sandbox Code Playgroud)

这就是我所追求的,但不会编译(错误陈述是"'Particle' was not declared in this scope").

particle.h文件已包含在此头文件的顶部.

澄清

这是给我错误的.h文件

#ifndef _PARTICLE_ATTRACTOR
#define _PARTICLE_ATTRACTOR

#include "ofMain.h"
#include "particle.h"


class ParticleAttractor {

    //private
public:

    ParticleAttractor(int posX, int posY); //constructor (void)

    int influenceParticles(vector<Particle> particles);

};


#endif 
Run Code Online (Sandbox Code Playgroud)

Ral*_*lph 6

也许你有循环包括,即.如果ParticleAttractor.h还包含Particle.h.要解决这个问题,您应该在ParticleAttractor.h中进行粒子的前向声明:

class Particle;
Run Code Online (Sandbox Code Playgroud)

您还应该考虑通过引用传递向量以避免复制:

int influenceParticles(vector<Particle>& particles);
Run Code Online (Sandbox Code Playgroud)