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

标签 c++ class parameters vector arguments

我正在尝试开发一个带有函数的类,该函数可以将项目 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/

相关文章:

C++ 正则表达式内存不足

c++ - 为什么在 C++ 中使用多线程时运行时间没有减半?

c++ - 如何在 C++ 中编写一个接受可变数量的 char 数组参数的函数?

java - SOAP 设置参数java

c# - 您可以在 Java 中通过引用传递吗?

c++ - Visual Studio 2015 Go To Definition 转到错误的类

class - yii2详细 View 条件行类

php - 避免使用无效参数实例化对象

c++ - 类中成员声明的重新排序规则

c# - 无法理解方法参数