我正在尝试开发一个带有函数的类,该函数可以将项目 vector 作为参数。
如果我使用 int 类型的 vector 或其他基本类型,我可以让它正常工作,但我无法让它与对象 vector 一起工作。
例如:
在我的头文件中:
int influenceParticles(vector<Particle> particles);
这就是我想要的,但不会编译(错误说明是 “'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
最佳答案
也许你有循环包含,即。如果 ParticleAttractor.h 还包含 Particle.h。要解决这个问题,您应该在 ParticleAttractor.h 中对 Particle 进行前向声明:
class Particle;
您还应该考虑通过引用传递 vector 以避免复制:
int influenceParticles(vector<Particle>& particles);
关于C++ 类 - 如何将自定义类型的 vector 传递给函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5672086/