Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

Korowai

unregistriert

1

01.08.2015, 12:08

Objektarray in Funktion

Hi,

ich habe die Posts und VOrschläge an anderer Stelle eingearbeitet, stosse jetzt aber auf folgende Fehlermeldung:

"no match for operator []" für die Zeile:

Quellcode

1
if (SchuerferSpieler0[0].m_BasisRestonaGuldon==false)


Ist da was falsch.

DIe Funktion wurde mit

Quellcode

1
2
3
4
5
void Modellkauf(CBasis (&RestonaGuldon_Spieler0),
                  CBasis (&KlendautKlendaut_Spieler0),
                 CBasis (&AbsariLumos_Spieler0),
                 CBasis (&HysskallMatras_Spieler0),
                 Schuerfer SchuerferSpieler0)


Kann jemand erkennen, was falsch ist?

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

2

01.08.2015, 12:20

Was ist denn Schuerfer für ein Typ?

birdfreeyahoo

Alter Hase

Beiträge: 756

Wohnort: Schorndorf

Beruf: Junior Software Engineer

  • Private Nachricht senden

3

01.08.2015, 12:20

Ja, du übergibst eine einzelne Variable an die Funktion. Das ist kein Array. Wenn das so beabsichtigt ist, kannst du einfach ohne den []-Operator darauf zugreifen.
Wenn du doch ein Array haben willst musst du das so machen:

C-/C++-Quelltext

1
2
3
4
5
void Modellkauf(CBasis (&RestonaGuldon_Spieler0),
                  CBasis (&KlendautKlendaut_Spieler0),
                 CBasis (&AbsariLumos_Spieler0),
                 CBasis (&HysskallMatras_Spieler0),
                 Schuerfer SchuerferSpieler0[x])


Wobei x die Anzahl der Elemente ist.

Korowai

unregistriert

4

01.08.2015, 12:24

Hi,

Schuerfer ist eine Klasse, die als array mit 4 Elementen initialisiert wird. Deine Lösung habe ich schon versucht, erhalte aber auch eine Fehlermeldung.

An sich soll auch der komplette array übergeben werden.

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

5

01.08.2015, 12:27

Schuerfer ist eine Klasse, die als array mit 4 Elementen initialisiert wird.

Was genau soll das heißen "eine Klasse als Array initialisieren" ?(

Korowai

unregistriert

6

01.08.2015, 12:48

Falsch ausgedrückt.

Ich meine:

Schuerfer Schuerferspieler0[4]

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

7

01.08.2015, 12:53

Ok, das ist ein Array aus Objekten vom Typ Schuerfer. Deine Funktion nimmt als Parameter aber kein Array sondern nur ein einzelnes Objekt!?

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »dot« (01.08.2015, 13:12)


Korowai

unregistriert

8

01.08.2015, 13:13

Ich habe es auch als array übergeben. DAs akzeptiert der compiler nicht.

Ich sollte wohl mal die entsprechenden code AUsschnitte posten...

Korowai

unregistriert

9

01.08.2015, 13:20

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
#include <iostream>
#include <conio.h>
#include <iterator>
#include <list>
#include <vector>
#include <list>
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <string>
#include "Spieler.hpp"
#include "Cbasis.hpp"
#include "CFoerderung.hpp"
#include "CPlanet.hpp"
#include "Flugwaechter.hpp"
#include "Jaeger.hpp"
#include "Schuerfer.hpp"
#include "Spieler.hpp"

using namespace std;

const int Mobile=4;

Schuerfer SchuerferSpieler0[4];

void Modellkauf(CBasis (&RestonaGuldon_Spieler0),
                  CBasis (&KlendautKlendaut_Spieler0),
                 CBasis (&AbsariLumos_Spieler0),
                 CBasis (&HysskallMatras_Spieler0),
                 Schuerfer SchuerferSpieler0[])
{


    cout<<"Welches Modell soll gekauft werden?"<<endl;
    cout<<"1-Schuerfer kostet "<<endl;
    
    ...
    cout<<"x- Zurueck" << endl;
    cout<<"Waehle das Modell"<<endl;

char hm;
cin >> hm;
    if (hm=='1')
    {
        if (RestonaGuldon_Spieler0.m_Basisaktiv==true)
        {
            if (SchuerferSpieler0[1].m_BasisRestonaGuldon==false)
            {
                SchuerferSpieler0[1].m_BasisRestonaGuldon=true;
            };
        }
    }


return;
}

void Fuhrpark (CBasis (&RestonaGuldon_Spieler0),
                  CBasis (&KlendautKlendaut_Spieler0),
                 CBasis (&AbsariLumos_Spieler0),
                 CBasis (&HysskallMatras_Spieler0),
               Schuerfer SchuerferSpieler0[])

    {
        char auswahl;

        while (true)
        {



        cout<<"Basis:"<<endl;
        cout<<"1 - Uebersicht Fahrzeuge"<<endl;
        cout<<"2 - neues Modell"<<endl;
        cout<<"3 - Modell verkaufen"<<endl;
        cout<<"4 - Modell kaufen"<<endl;
        cout<<"5 - Reparatur"<<endl;
        cout<<"6 - Modell verlagern"<<endl;
        cout<<"0 - Hauptmenue"<<endl;
        char auswahl=getch();
        if (auswahl=='1')
        {
            continue;
        };
        if (auswahl=='2')
        {
           Modellkauf(RestonaGuldon_Spieler0, KlendautKlendaut_Spieler0,
                      AbsariLumos_Spieler0, HysskallMatras_Spieler0, SchuerferSpieler0) ;
            continue;
        };
        }

    return;
    }



void Menue(CBasis (&RestonaGuldon_Spieler0),
        CBasis (&KlendautKlendaut_Spieler0),
        CBasis (&AbsariLumos_Spieler0),
        CBasis (&HysskallMatras_Spieler0),
        Schuerfer SchuerferSpieler0)

{
    while (true)
    {
    ...
    cout << "1 - Fuhrpark"<<endl;
    ...
    cout <<"x - Ende"<<endl;
    char hm=getch();
    if (hm=='1')
    {
        Fuhrpark (RestonaGuldon_Spieler0,
                  KlendautKlendaut_Spieler0,
                 AbsariLumos_Spieler0,
                 HysskallMatras_Spieler0,
                 SchuerferSpieler0);
        continue;
    }
    if (hm=='2')
    {
        Basiswechsel(Basisnummer0,RestonaGuldon_Spieler0,KlendautKlendaut_Spieler0,AbsariLumos_Spieler0,HysskallMatras_Spieler0);

        continue;

    }

int main()
    {

    CBasis RestonaGuldon_Spieler0;
    CBasis:RestonaGuldon_Spieler0.m_Basisaktiv=true;
    CBasis KlendautKlendaut_Spieler0;
    CBasis AbsariLumos_Spieler0;
    CBasis HysskallMatras_Spieler0;

    CPlanet CRestonaGuldon;
    CPlanet CKlendautKlendaut;
    CPlanet CAbsariLumos;
    CPlanet CHysskallMatras;
    CPlanet CRestonaVakari;
    CPlanet CRestonaGuldon2;
    CPlanet CRestonaGottesGarten;
    CPlanet CRestonaWojtha;
    CPlanet CRestonaWhizkial;

Spiel();

Spielstart ();

while (true)
{

    Menue(RestonaGuldon_Spieler0, KlendautKlendaut_Spieler0, AbsariLumos_Spieler0, HysskallMatras_Spieler0,
          SchuerferSpieler0[]);
    //Gegneraktionen

    Runde ++;
    alteRunde=Runde;
}

    return 0;
}

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

10

01.08.2015, 13:23

Was genau meinst du sollte das SchuerferSpieler0[] in

C-/C++-Quelltext

1
2
Menue(RestonaGuldon_Spieler0, KlendautKlendaut_Spieler0, AbsariLumos_Spieler0, HysskallMatras_Spieler0,
          SchuerferSpieler0[]);


tun? ;)

Werbeanzeige