类中的C ++向量

时间:2014-10-13 17:11:03

标签: c++ cuda

我是C ++的新手,试图学习并行编程(来自Basic),很早就被卡住了。

class Particle{
private:
    double p_x, p_y, v_x, v_y, mass
public:
    Particle(double px, double py, double vx, double vy, double m) : p_x(px), p_y(px), v_x(vx), v_y(vx), mass(m) {};
    vector<int> pos () {p_x, p_y}; //doesn't work, expects ';'
    vector<int> vel () {v_x, v_y}; //doesn't work, expects ';'
};

我试图用属性pos和vel创建一个类,两个向量。没有什么能与我想要做的事情一起工作 - 我猜想初始化矢量。

谁能告诉我如何做这项工作?或者如果不是这样的话:

class Particle{
    private:
        double p_x, p_y, v_x, v_y, mass
    public:
        Particle(double px, double py, double vx, double vy, double m) : p_x(px), p_y(px), v_x(vx), v_y(vx), mass(m) {};
        void SetPos(int x, int y) //pseudo code based on Basic
        void GetPos() as Vector   //pseudo code based on Basic
    };

提前感谢您的时间,这对我来说已经是一段砖墙。我已经看过很多其他线程,比如这个在这里,但我不知道能够根据我的需要调整其中任何一个。使我使用VS2012 Cuda 6.0项目的事情复杂化,有时甚至与标准C ++项目的行为不同。由于chrono拒绝在6.5中工作,因此恢复到6.0。会使用标准项目,但我不知道如何(如果可能的话)将Cuda整合到其中。

1 个答案:

答案 0 :(得分:1)

()表示他们的功能,而不是变量;其余的语法对函数定义无效。要么变成它们:

vector<int> pos {p_x, p_y};

或有效功能:

vector<int> pos () {return {p_x, p_y};}

您可能希望它们成为函数,以便它们不会复制其他成员的值,并在其他成员被修改时给出预期结果。