Скорее всего, вы пытаетесь создать свой класс Vector2D
следующим образом:
Vector2D vector(1, 2);
Вы не можете сделать это, используя указатели на int
, как вы делали это в своем определении конструктора Vector2D, потому чтоэти значения не являются указателями, они являются целочисленными константами.Измените на простые int
объекты, подобные этому:
struct Vector2D
{
Vector2D(int varX, int varY): X(varX), Y(varY) {} //initialization list
//~Vector2D(); delete the destructor since it's not needed anymore
int X, Y;
};
Деструктор также не нужен, поскольку ваши объекты данных не являются указателями, и, следовательно, нет дополнительной очистки выделенной памяти в куче, необходимой вуничтожение объекта.Я только что закомментировал это, чтобы вы могли видеть, что это больше не нужно.
Наконец, вы, вероятно, не хотите, чтобы ваши члены-данные были private
, если вы используетеstruct ... вы можете сделать это, но затем вам нужно будет добавить некоторые функции для доступа к этим элементам данных (т. е. если вы объявите их private
, вы не сможете делать такие вещи, как vector.x = 5;
).Обычно вы используете class
, если хотите использовать по умолчанию private
доступ, так как struct
по умолчанию public
access.