Avatar billede kernelx Juniormester
14. december 2006 - 17:47 Der er 8 kommentarer og
1 løsning

fejl i c++-kode (pointer/referencer)

hi,

jeg har følgende kode:
---
#include <iostream>
using namespace std;

class xyz
{

};

class test
{
    private:
        // array som skal indeholde
        // pointer, som peger på xyz-værdier
        xyz *pointerArray;

    public:
        test()
        {
            this->pointerArray = new xzy[10];
        }

        xzy* getPointer(int);
        void setPointer(int, xzy&);

        ...
};

xzy* test::getPointer(int index)
{
    return (this->pointerArray[index]);
}

void test::setPointer(int index, xzy& xzyValue)
{
    this->pointerArray[index] = xzyValue;
}

int main ()
{
    test test1;
    xzy xzy1;
    yzx *p;

    for (int i = 0; i < 10; i++)
    {
        test.setPointer(i, xzy1);
    }

    p = test.getPointer(5);
}
---
jeg vil gerne, at p peger på xyz1. problemet er, at min version
ikke virker. er der en, som kan rette lidt rundt på koden?
Avatar billede arne_v Ekspert
14. december 2006 - 17:53 #1
i klassen og i set antager du at du har et array af xyz

i get antager du at du har et array af xyz*

det er ikke det samme
Avatar billede kernelx Juniormester
14. december 2006 - 17:58 #2
i klassen vil jeg gerne have et array, som ikke er fyldt op med xyz-værdier, men et array, som er fyldt op
med adresser, som peger på xyz-værdier.

i main vil jeg så kalle på test.getPointer(index) og få fat i adressen fra xyz1. sådan at p peger på xyz1
Avatar billede kernelx Juniormester
14. december 2006 - 17:59 #3
hvordan kan jeg få klassen til at antage, at arrayet pointerArray indeholder adresser af xyz-objekter?
Avatar billede kernelx Juniormester
14. december 2006 - 18:13 #4
hvad skal der stå som return-value i en class-funktion hvis class-funktionen skal returnere med
en adresse som peger på et xyz-objekt?
Avatar billede arne_v Ekspert
14. december 2006 - 18:25 #5
xyz **pointerArray;
Avatar billede arne_v Ekspert
14. december 2006 - 18:26 #6
void test::setPointer(int index, xzy* xzyValue)
{
    this->pointerArray[index] = xzyValue;
}
Avatar billede kernelx Juniormester
15. december 2006 - 11:29 #7
mange tak!
husk at skrive svar :-)
Avatar billede arne_v Ekspert
15. december 2006 - 14:57 #8
ok

(overvej evt. mindre point)
Avatar billede kernelx Juniormester
15. december 2006 - 15:08 #9
hvis jeg selv er for dum til at finde ud af tingene selv
og i hjælper mig. så er alle points fortjent :-)
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



IT-JOB

PensionDanmark

ML Engineer

Acrelec Danmark

IT-supporter

Danske Andelskassers Bank A/S

IT-konsulent

Quadsat ApS

Robotics Engineer