11. september 2004 - 01:01
Der er
3 kommentarer og 2 løsninger
Sende et array som parameter til en funktion
Hej Hvordan er det jeg gør ovenstående? Hvis jeg f.eks. har: searchM(mit array som parameter men hvordan?) { } int main() { int arr[2]; arr[0]=1; arr[1]=2; arr[2]=2; searchM(mit array som parameter med hvordan?) return 0; } Mvh AHR
Annonceindlæg fra Deloitte
11. september 2004 - 01:12
#1
Man kan ikke overføre et array til en funktion, kun en pointer: #include <iostream> void searchM(int *arg, int size) { for(int i = 0; i < size; i++) std::cout << arg[i] << std::endl; } int main() { int arr[3]; arr[0]=1; arr[1]=2; arr[2]=2; searchM(arr, 3); return 0; }
11. september 2004 - 01:22
#2
Her er hele min kode: class felt { private: int id; int koorx; int koory; public: felt(int id_x, int koorx_x, int koory_x) { id=id_x; koorx=koorx_x; koory=koory_x; } }; void searchM(felt *nr) { cout<<nr[0]; } int main() { felt nr[4]={felt(1,1,1), felt(2,2,2), felt(3,3,3), felt(4,4,4)}; searchM(nr); return 0; } Jeg får dog en fejl i searchM() ved min cout. Fejlen er: no operator defined which takes a right-hand operand of type 'class felt' (or there is no acceptable conversion) Kan i hjælpe med hvad jeg skal gøre. Mvh AHR
11. september 2004 - 01:36
#3
Du tilføjer en ostream operator: #include <iostream> using namespace std; class felt { private: int id; int koorx; int koory; friend ostream &operator << (ostream &os, const felt &rhs); public: felt(int id_x, int koorx_x, int koory_x) { id=id_x; koorx=koorx_x; koory=koory_x; } }; ostream &operator << (ostream &os, const felt &rhs) { os << rhs.id << " " << rhs.koorx << " " << rhs.koory << endl; return os; } void searchM(felt *nr) { cout << nr[0]; } int main() { felt nr[4]={felt(1,1,1), felt(2,2,2), felt(3,3,3), felt(4,4,4)}; searchM(nr); return 0; }
11. september 2004 - 08:29
#4
Ok, men kan jeg ikke slippe for denne: ostream &operator << (ostream &os, const felt &rhs) { os << rhs.id << " " << rhs.koorx << " " << rhs.koory << endl; return os; } Hvis jeg f.eks. ønsker at ændre på i hvad der står på plads nr 1 i arrayet til (5,5,5) i funktionen hvordan gør jeg så det simpelst? Tak igen
11. september 2004 - 11:39
#5
Fandt en løsning. Tak for hjælpen :o)
Kurser inden for grundlæggende programmering