Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » vector

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: [ 1 ] [ 2 ] [ 3 ] [ 4 ] > 5 < [ 6 ]
040
19.10.2003, 23:08 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


wie kann ich nun ein matrixmultiplizieren implementieren?

das hier geht nicht

C++:
CMatrix<Typ,zeilen,int> operator*(CMatrix<Typ,spalten,int>& m);



wie sag ich ihm das an den beiden stellen wo int steht, das er dort den spaltenwert der matrix nehmen soll mit der multipliziert wird

weil ja eine z.b. eine 3X5 matrix mit einer 5X 4 matrix wieder eine 3X4 matrix ergibt.
--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
041
20.10.2003, 06:59 Uhr
(un)wissender
Niveauwart


Ich glaube(!), da musst du eine non-member-Funktion draus machen.


C++:

template <class Typ, class zeilen, class spalten>
const CMatrix<Typ, zeilen, int>operator*(cMatrix<Typ, spalten, int> &m) const;



Als Member kann (ich vermute nur), die zweite Templatetypdefinition nicht aufgelöst werden, weil die Klasse an sich nur mit template <class, Typ, class zeilen(was auch immer)> und nicht mit template <class, Typ, class zeilen, class spalten> definiert ist.
Ihr fehlt also ein Parameter.
Kann mich aber auch irren, ausprobieren hilft, poste mal wie es richtig ist.
--
Wer früher stirbt ist länger tot.

Dieser Post wurde am 20.10.2003 um 07:01 Uhr von (un)wissender editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
042
20.10.2003, 07:00 Uhr
(un)wissender
Niveauwart



Zitat:
(un)wissender postete
Ich glaube(!), da musst du eine non-member-Funktion draus machen.


C++:

template <class Typ, class zeilen, class spalten>
const CMatrix<Typ, zeilen, int>operator*(cMatrix<Typ, spalten, int> &m) const;



Als Member kann (ich vermute nur), die zweite Templatetypdefinition nicht aufgelöst werden, weil die Klasse an sich nur mit template <class, Typ, class zeilen(was auch immer)> und nicht mit template <class, Typ, class zeilen, class spalten> definiert ist.
Ihr fehlt also ein Parameter.
Kann mich aber auch irren, ausprobieren hilft, poste mal wie es richtig ist.


--
Wer früher stirbt ist länger tot.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
043
20.10.2003, 07:01 Uhr
(un)wissender
Niveauwart


Ups sorry, kann es nicht löschen...
--
Wer früher stirbt ist länger tot.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
044
20.10.2003, 10:05 Uhr
virtual
Sexiest Bit alive
(Operator)


Ich glaube nicht, daß man das Non-Member machen muß. Allerdings sollte Windalf sich überlegen was er mit

C++:
CMatrix<Typ,zeilen,int> operator*(CMatrix<Typ,spalten,int>& m)


eigentlich sagen will. Ich denke, eigentlich sollte es sowas sein:

C++:
template<class T, int Z, int S>
class Matrix
{
public:
    template<int D> Matrix<T,Z,D> operator * (const Matrix<T,S,D>& roOther) const;
};      

...
template<class T, int Z, int S>
template<int D> Matrix<T,Z,D> operator * (const Matrix<T,S,D>& roOther) const
{
   ...
}


--
Gruß, virtual
Quote of the Month
Ich eß' nur was ein Gesicht hat (Creme 21)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
045
20.10.2003, 14:27 Uhr
(un)wissender
Niveauwart


Wow, sowas geht?!
Wieder was gelernt, sieht aber recht verwirrend aus...
--
Wer früher stirbt ist länger tot.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
046
20.10.2003, 14:33 Uhr
virtual
Sexiest Bit alive
(Operator)


Nested Templates eben. Bei mir gehts, aber nicht alle Compiler unterstützen das. Ist aber Standardisierte Verwirrung...
--
Gruß, virtual
Quote of the Month
Ich eß' nur was ein Gesicht hat (Creme 21)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
047
20.10.2003, 15:03 Uhr
(un)wissender
Niveauwart


Wo wir schon gerade dabei sind, was macht man mit friend-Funktionen und Templates?
Ich bekommen da immer Ärger von gcc, vermutlich weil class T der Klasse nicht class T der Methode sein muss.
Was kann man da tun?
--
Wer früher stirbt ist länger tot.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
048
20.10.2003, 15:30 Uhr
virtual
Sexiest Bit alive
(Operator)


Beispiel?
--
Gruß, virtual
Quote of the Month
Ich eß' nur was ein Gesicht hat (Creme 21)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
049
20.10.2003, 18:18 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


@virtual
heisst INTERNAL COMPILER ERROR das mein compiler das nicht kann?
--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: [ 1 ] [ 2 ] [ 3 ] [ 4 ] > 5 < [ 6 ]     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: