Я новичок в C++, пытаясь изучить параллельное программирование (исходящее из Basic), застрял довольно рано.C++ вектор в классе
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, обоими векторами. HNothing работал с тем, что я пытаюсь сделать - инициализация векторов, я думаю.
Может ли кто-нибудь сказать мне, как это сделать? Или, если не что-то вроде этого:
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++. Вернулся к 6.0, потому что chrono отказался работать в 6.5. Будет использовать стандартный проект, но я не знаю, как (если возможно) интегрировать Cuda в него.
Если вы хотите, чтобы векторы были членами данных, вам нужно «vector pos {some_int, some_other_int};'. Если нет, вы должны уточнить свой вопрос. –
juanchopanza
Этот вопрос кажется вне темы, потому что в примере содержится слишком много типографских ошибок, что код может быть исправлен, чтобы иметь смысл. –
Нет, вы не можете инициализировать переменные-члены «inline», как вы, вы должны использовать список инициализаторов в конструкторе. Это не имеет никакого отношения к Cuda, это как указано на языке C++. –