000
27.07.2005, 15:59 Uhr
~obladi
Gast
|
ja ich habe hier diese kleine klasse und bekomme beim kompillieren diesen fehler:
Code: |
matrix.cpp:5: error: expected constructor, destructor, or type conversion before '<' token matrix.cpp:5: error: expected `;' before '<' token matrix.cpp:12: error: expected constructor, destructor, or type conversion before '<' token matrix.cpp:12: error: expected `;' before '<' token matrix.cpp:22: error: expected constructor, destructor, or type conversion before '<' token matrix.cpp:22: error: expected `;' before '<' token matrix.cpp:30: error: expected init-declarator before '<' token matrix.cpp:30: error: expected `;' before '<' token matrix.cpp:37: error: expected init-declarator before '<' token matrix.cpp:37: error: expected `;' before '<' token
|
C++: |
#ifdef HAVE_CONFIG_H #include <config.h> #endif
#include <iostream> #include <cstdlib> #include "matrix.h"
using namespace std;
int main(int argc, char *argv[]) { int a[] = {1,2,3,4,5,6,7,8,9,8,7,6,5,4,3};
matrix<int> mat(15); mat.setze_in_matrix(a, 15); mat.ausgabe_matrix();
return EXIT_SUCCESS; }
|
C++: |
#ifndef matrix_klasse #define matrix_klasse
#include <iostream> #include <cstdlib>
using namespace std;
template <class T> class matrix { public: matrix(unsigned int z); //eine dimension matrix(unsigned int z, unsigned int s); //zwei dimemsionen //matrix(int, int, int); //noch nicht ~matrix();
void ausgabe_matrix();
void setze_in_matrix(T *feld); //schiebt hinten rein(matrix) void setze_in_matrix(T *feld, int pos_z); //für eindim array void setze_in_matrix(T *feld, int pos_z, int pos_s); //für zweidim matrix
void fuege_array_ein(T *array); private: T *matrix_eindim; T **matrix_zweidim; //T ***matrix_dreidim;
unsigned int zeilen_matr; unsigned int spalten_matr;
unsigned int index_z_eindim; //damit verwechlungen ausgeschlossen sind unsigned int index_z_zweidim; unsigned int index_s_zweidim; }; #include "matrix.cpp"
#endif
|
C++: |
#include <iostream> #include <cstdlib>
template <class T> matrix<T>::matrix(unsigned int zeilen) { matrix_eindim = new T[zeilen]; zeilen_matr = zeilen; }
template <class T> matrix<T>::matrix(unsigned int zeilen, unsigned int spalten) { matrix_zweidim = new T*[zeilen]; for(int i=0; i < zeilen; i++) matrix_zweidim[i] = new T[spalten]; zeilen_matr = zeilen; spalten_matr = spalten; }
template <class T> matrix<T>::~matrix() { delete [] matrix_eindim; delete [] matrix_zweidim; //delete matrix_dreidim; }
template <class T> void matrix<T>::ausgabe_matrix() { for(int i = 0; i < zeilen_matr; i++) cout<< "Position " << i << ": " << matrix_eindim[i] << endl; }
template <class T> void matrix<T>::setze_in_matrix(T *feld) { int feld_zeilen = sizeof(feld) / sizeof(feld[0]); for(; index_z_eindim < feld_zeilen; index_z_eindim++) matrix_eindim[index_z_eindim] = feld[index_z_eindim]; }
|
falls zufäälig jemand weiß wie ich den fehler weg bekomme... wär ich sehr dankbar. ich bin noch anfänger, darum etwas nachsicht. |