#c
#c
Вопрос:
Точно так же, как я создаю переменные-члены для x
, y
, и theta
, как бы я создал переменные-члены для типа vector<double>
в конструкторе? То, что я делаю ниже, похоже, не работает.
Positioning::Positioning(double x, double y, double theta) {
this->globalX = x;
this->globalY = y;
this->globalTheta = theta;
vector<double> this->xs;
}
Я сделал #include <vector>
и имею std::vector<double> xs;
в частном разделе Positioning.hpp
Редактировать
Заголовочный файл:
namespace Position {
class Positioning {
private:
double globalX;
double globalY;
double globalTheta;
std::vector<double> xs;
public:
Positioning(double x, double y, double theta);
~Positioning();
void updateGlobalPosition(double left_dist, double right_dist, double rear_dist);
double getX();
double getY();
double getTheta();
};
}
Комментарии:
1.
vector<double> this->xs;
это не то, как вы определяете переменные-члены класса в c . Как выглядит определениеPositioning
класса?2. Спасибо за ваше время, я добавил файл заголовка в качестве редактирования
3. Итак, вы спрашиваете о том, как инициализировать этот член векторного класса? Пожалуйста, вам следует соответствующим образом адаптировать формулировку ваших вопросов.
4. Извините за это. Я новичок в английском, поэтому прошу прощения. Я думаю, что люди, приведенные ниже, помогли мне с моим замешательством. Я благодарю вас за ваше время.
Ответ №1:
Это работает
Positioning::Positioning(double x, double y, double theta) {
this->globalX = x;
this->globalY = y;
this->globalTheta = theta;
}
Все переменные вашего класса создаются автоматически, вам не нужно делать ничего особенного для их создания.
Код в теле конструктора выше ничего не создает, он присваивает значения вашим переменным. Конечно, если вы хотите присвоить переменной-члену определенное значение, вам нужно что-то сделать, но они создаются автоматически.
Комментарии:
1. О, хорошо. Итак, если бы я хотел присвоить переменной
this->xs
вектор <double>, я бы просто сделалthis->xs = xs
? Поскольку xs создается в закрытом разделе объявления класса.2. Предположим
xs
, что это переменная правильного типа, тогда это будет работать.3. @itsMeMoriarty Это предполагает, что есть переменная
xs
, которую вы хотите скопировать. Если вы добавите его в качестве четвертого параметра конструктора, конечно. Или, если вы хотите, чтобы он был пустым в конструкторе, вам ничего не нужно делать: он уже существует и по умолчанию пуст.