3D 位置を管理するためにカスタム 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[i] は Punto* で、問題なくコンパイルされますが、実行しようとすると:
p = fem->elementoFrontera[i]->nodo[0] + fem->elementoFrontera[i]->nodo[1];
コンパイラは次のように述べています。
メンバ関数
void mdTOT::pintarElementosFrontera()': error: invalid operands of types
Punto*' およびPunto*' to binary
operator+' 内