Ошибка в пользовательском классе C++.C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Ошибка в пользовательском классе C++.

Сообщение Anonymous »

Мне нужна помощь в поиске проблемы с использованием специального класса C++ для управления трехмерными позициями. Вот соответствующий код из класса

Код: Выделить всё

  Punto operator+(Punto p){
return Punto(this->x + p.x, this->y + p.y, this->z + p.z);
}

Punto operator+(Punto *p){
return Punto(this->x + p->x, this->y + p->y, this->z + p->z);
}

Punto operator-(Punto p){
return Punto(this->x - p.x, this->y - p.y, this->z - p.z);
}

Punto operator-(Punto *p){
return Punto(this->x - p->x, this->y - p->y, this->z - p->z);
}

Punto *operator=(Punto p){
this->x = p.x;
this->y = p.y;
this->z = p.z;
return this;
}

Punto *operator=(Punto *p){
this->x = p->x;
this->y = p->y;
this->z = p->z;
return this;
}
Я использую его вот так:

Код: Выделить всё

p = fem->elementoFrontera[i]->nodo[0] - fem->elementoFrontera[i]->nodo[1];
Где nodo — это Punto*, и он отлично компилируется, но когда я пытаюсь это сделать:

Код: Выделить всё

p = fem->elementoFrontera[i]->nodo[0] + fem->elementoFrontera[i]->nodo[1];
Компилятор говорит:


В функции-члене void
mdTOT ::pintarElementosFrontera()':
ошибка: недопустимые операнды типов
Punto*' и Punto*' в двоичный
operator+'


Подробнее здесь: https://stackoverflow.com/questions/100 ... om-c-class
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»