Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

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

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 <
000
04.05.2005, 10:03 Uhr
~ganymed
Gast


tag beisammen,
folgenedes programm bereitet mir probleme, ich bekomme für zeile 61 immer den fehler:
61: sorry, unimplemented: use of `var_decl' in template type
unification
und
61: error: no matching function for call to `mat_mat_prod(
float[3][3], float[3][3], float[3][3])'

also folgendes ist der progcode:

Code:
#include <iostream>
using namespace std;

const int N = 3;

//Funktion für Matrizenmultiplikation
template <class T>
void mat_mat_prod(T A[N][N], T B[N][N], T C[N][N])
{
    for(int i = 0; i < N; ++i)
    {
        for(int j = 0; j < N; ++j)
        {
        C[i][j] = 0;
        for(int k = 0; k < N; ++k)
          C[i][j] += (A[i][k]) * (B[k][j]);
    } // for j
    } // for i
} // mat_mat_prod


//Funktion zum füllen einer Matrix mit vorgegebenen Werten
void fill_mat(float A[N][N], float B[N][N])
{
    A[0][0] = 3.4;
    A[0][1] = 8.3;
    A[0][2] = 4.7;
    A[1][0] = 2.5;
    A[1][1] = 1.2;
    A[1][2] = 3.2;
    A[2][0] = 7.4;
    A[2][1] = 3.7;
    A[2][2] = 1.5;  
    B[0][0] = 8.4;
    B[0][1] = 2.3;
    B[0][2] = 4.3;
    B[1][0] = 3.1;
    B[1][1] = 4.2;
    B[1][2] = 3.8;
    B[2][0] = 7.2;
    B[2][1] = 5.3;
    B[2][2] = 5.2;
} // void fill_mat

//
void show_mat(float A[N][N])
{
   for(int i = 0; i < N; i++)
   {
       for(int j = 0; j < N; j++)
       {
          cout << A[i][j] << endl;
       } // for j
   } // for i
} // void show_mat

int main()
{
    float A[N][N], B[N][N], C[N][N];
    fill_mat(A,B);
    mat_mat_prod(A,B,C);
    show_mat(C);
    return 0;
} // int main



weisst ihr mir zu helfen?
grüße
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
04.05.2005, 11:47 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


also normalerweise definierst du matrix als eine klasse und überlädst dann den * operator... dann musst du noch den = operator definierten und kannst dann zur multiplikation sowas schreiben

m1 = m2* m3;
--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
04.05.2005, 12:35 Uhr
(un)wissender
Niveauwart


Der Code ist zwar nicht schön, aber sonst ok. Dein Compiler spinnt.
--
Wer früher stirbt ist länger tot.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
04.05.2005, 13:14 Uhr
Tommix




Zitat von (un)wissender:
Der Code ist zwar nicht schön, aber sonst ok. Dein Compiler spinnt.

Wobei
Zitat:
... sorry, unimplemented ...
zeigt, daß der Compiler weiß, daß er spinnt.

- Tommix
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
04.05.2005, 18:29 Uhr
(un)wissender
Niveauwart


Immerhin, nicht jeder Spinner weiß, dass er spinnt, erst letztens, aber das ist eine andere Geschichte....
--
Wer früher stirbt ist länger tot.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ 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: