Galera, estou em litígio aqui com a sobrecarga de operadores... <_<
Simplesmente eu não consigo entender porque tá errado!
A intenção era fazer com que haja sobrecarga do operador + para que quando eu some dois vetores, a resposta seja um vetor, e que quando eu subtraia dois pontos, a resposta seja um vetor também.
O 1o problema é que o compilador cismou com a minha cara e não compila de jeito nenhum, sendo que o erro que ele encontra não é a situação que ocorre... E o 2o é que quando eu faço uma operação do tipo vetor = ponto - ponto ele não aceita... sendo que a subtração está definida para retornar um vetor e, como o = tem menor precedência, era pra avaliar primeiro a subtração...
Alguém saberia me dizer onde está o erro aqui? :unsure:
Vector.cpp: In member function ‘const Vector Vector::operator+(Vector&)’:
Vector.cpp:104: error: no matching function for call to ‘Vector::Vector(Vector)’
Vector.cpp:21: note: candidates are: Vector::Vector(Vector&)
Vector.cpp:15: note: Vector::Vector(double*)
Point.cpp: In member function ‘const Vector Point::operator-(Point&)’:
Point.cpp:75: error: no matching function for call to ‘Vector::Vector(Vector)’
Vector.hpp:14: note: candidates are: Vector::Vector(Vector&)
Vector.hpp:13: note: Vector::Vector(double*)
main.cpp
28 lookv = (lookat - eye);
Com lookv um Vector e lookat e eyePoint.saída do compilador
f.main.cpp: In function ‘void arrowpress(int, GLint, GLint)’:
main.cpp:28: error: no match for ‘operator=’ in ‘lookv = Point::operator-(Point&)(((Point&)(& eye)))’
Vector.hpp:31: note: candidates are: const Vector Vector::operator=(Vector&)
Pergunta
naofuieu
Galera, estou em litígio aqui com a sobrecarga de operadores... <_<
Simplesmente eu não consigo entender porque tá errado!
A intenção era fazer com que haja sobrecarga do operador + para que quando eu some dois vetores, a resposta seja um vetor, e que quando eu subtraia dois pontos, a resposta seja um vetor também.
O 1o problema é que o compilador cismou com a minha cara e não compila de jeito nenhum, sendo que o erro que ele encontra não é a situação que ocorre... E o 2o é que quando eu faço uma operação do tipo vetor = ponto - ponto ele não aceita... sendo que a subtração está definida para retornar um vetor e, como o = tem menor precedência, era pra avaliar primeiro a subtração...
Alguém saberia me dizer onde está o erro aqui? :unsure:
Vector.cpp
Point.cpp saída do compilador main.cpp Com lookv um Vector e lookat e eye Point. saída do compiladorLink para o comentário
Compartilhar em outros sites
1 resposta a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.