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)
也许你有循环包括,即.如果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)