Je suis un étudiant qui travaille sur un programme de guide touristique en utilisant xcode. J'essaie de définir l'objet Ds
de type Sport
qui est un tableau dynamique (je pense) d'être de type Attraction
. Ensuite, je veux passer le nouvel objet Attraction
à la fonction setAttraction()
, mais je reçois l'erreur:Atteindre et passer un tableau dynamique (C++)
"cannot initialize a parameter of type 'Attraction**' to a lvalue of type 'Attraction*'.
Maintenant, je suis nouveau à POO et C++, donc je ne sais pas ce que cela signifie.
main.cpp
:
int main() {
int x;
City Rome(111,"Rome");
City Dubai(222,"Dubai");
City Paris(333, "Paris");
cin >> x;
Sport* Ds = new Sport[x];
Culture* Dc = new Culture[x];
Shopping* Dh = new Shopping[x];
//{ new Sport, new Sport, new Sport, new Culture,
// new Culture, new Culture, new Shopping, new Shopping, new Shopping};
Ds[0].setName("Camel and Horse Racing");
Ds[1].setName("Marine Sports");
Ds[2].setName("Football");
Dc[0].setName("Dubai Museum");
Dc[1].setName("Falconry");
Dc[2].setName("Sheikh Saeed Al-Maktoum's House");
Dh[0].setName("Dubai Mall");
Dh[1].setName("Mall of Emirates");
Dh[2].setName("Deira City Centre");
Ds[0].setIDType(1);
Ds[1].setIDType(1);
Ds[2].setIDType(1);
Dc[0].setIDType(2);
Dc[1].setIDType(2);
Dc[2].setIDType(2);
Dh[0].setIDType(3);
Dh[1].setIDType(3);
Dh[2].setIDType(3);
//Here's the problem
Attraction* z = new Attraction[x];
*z = *Ds;
Dubai.setAttraction(z, x);
menu(Rome,Dubai,Paris);
return 0;
}
'City.cpp':
#include "City.h"
#include "Sport.h"
#include "Culture.h"
#include "Shopping.h"
#include <iostream>
#include "Attraction.h"
using namespace::std;
string City::getName(){
return name;
}
int City::getID(){
return id;
}
void City::setAttraction(Attraction a[], int size){
attractions = new Attraction[size];
for (int i = 0; i < size ; i++) {
attractions[i].setName(a[i].getName());//Here's the thread
cout << attractions[i].getName() << endl;
}
for (int j = 0; j < size ; j++) {
attractions[j].setIDType(a[j].getIDType());
}
}
void City::displayAttraction(){
cout << "There you go.\n\n";
for (int i = 0; i < 9 ; i++) {
cout << attractions[i].getName();
}
}
S'il vous plaît lisez comment créer un exemple minimal, complet et vérifiable: http: //stackoverflow.com/help/mcve – Ziezi
Est-ce que 'Sports',' Culture', 'Shopping' hérite de la classe' Attraction'? – user007
@simplicisveritatis Je suis désolé, mais pouvez-vous me dire si la question n'est pas minimale, complète ou vérifiable, surtout après l'avoir édité, ce dont je vous remercie. Le code est trop long, donc c'est le meilleur que je puisse faire pour montrer le problème. J'ai également mis en évidence l'emplacement des problèmes dans le code. –