Avatar billede ahara Nybegynder
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
Avatar billede bertelbrander Novice
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;
}
Avatar billede ahara Nybegynder
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
Avatar billede bertelbrander Novice
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;
}
Avatar billede ahara Nybegynder
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
Avatar billede ahara Nybegynder
11. september 2004 - 11:39 #5
Fandt en løsning. Tak for hjælpen :o)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester