Beste Tweakers,
Ik heb een matrix klasse overgeerft. Hierin wil ik een functie toevoegen die handig is in het geval een matrixmultiplicatie een scalar opleverd, maar ik bots tegen C2556 aan.
Op het moment heb ik dit:
Waarop ik dus de fout "error C2556: 'int CMatrix<Type>::operator *(const CMatrix<Type> &) const' : overloaded function differs only by return type from 'CMatrix<Type> CMatrix<Type>::operator *(const CMatrix<Type> &) const'" krijg. Ik heb het nu tijdelijk opgelost door "^" voor mijn nieuwe operator te gebruiken, maar dat is natuurlijk vies.
Is er een elegante manier om dit op te lossen? Op google kom ik alleen beginnersvragen tegen. Omdat dit een operator betreft kan ik het helaas niet met een dummy argument oplossen.
Bedankt voor jullie suggesties!
Ik heb een matrix klasse overgeerft. Hierin wil ik een functie toevoegen die handig is in het geval een matrixmultiplicatie een scalar opleverd, maar ik bots tegen C2556 aan.
Op het moment heb ik dit:
C++:
1
2
3
4
5
6
7
8
9
10
11
12
| template <class Type> class CMatrix { public: // snip // arithmetic operations with matrix M virtual CMatrix<Type> operator * (const CMatrix<Type>& M) const; // arithmetic operations with matrix M, producing a scalar virtual Type operator * (const CMatrix<Type>& M) const; // deze is dus nieuw } |
Waarop ik dus de fout "error C2556: 'int CMatrix<Type>::operator *(const CMatrix<Type> &) const' : overloaded function differs only by return type from 'CMatrix<Type> CMatrix<Type>::operator *(const CMatrix<Type> &) const'" krijg. Ik heb het nu tijdelijk opgelost door "^" voor mijn nieuwe operator te gebruiken, maar dat is natuurlijk vies.
Is er een elegante manier om dit op te lossen? Op google kom ik alleen beginnersvragen tegen. Omdat dit een operator betreft kan ik het helaas niet met een dummy argument oplossen.
Bedankt voor jullie suggesties!