Я работаю над туристическим гидом с использованием C++, и я продолжаю получать этот поток, когда я запускаю код, в классе Attraction, setName функции и в основной функции, и я не понимаю, в чем проблема. Вот файлы .cpp и main.Whats thread thread 1 exc_bad_access (code = exc_i386_gpflt) и как его решить? C++
//.cpp file
#include <string>
#include "Attraction.h"
string Attraction::getName(){
return name;
}
int Attraction::getIDType(){
return id;
}
void Attraction::setName(string name){
this -> name = name;//In this line I receive the thread
}
void Attraction::setIDType(int typeID){
this -> typeID = typeID;
}
//main.cpp
int main() {
int x;
City Rome(111,"Rome");
City Dubai(222,"Dubai");
City Paris(333, "Paris");
menu(Rome,Dubai,Paris);
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");//And here
Dh[1].setName("Mall of Emirates");
Dh[2].setName("Deira City Centre");
Ds[0].setIDType(1);
Ds[1].setIDType(1);
Ds[2].setIDType(1);
Ds[3].setIDType(2);
Ds[4].setIDType(2);
Ds[5].setIDType(2);
Ds[6].setIDType(3);
Ds[7].setIDType(3);
Ds[8].setIDType(3);
Dubai.setAttraction(Ds, x);
return 0;
}
Вы пишете C++, как будто это то же самое, что и Java. В результате этот код представляет собой утечку памяти. Вы должны «удалить []' массивы, которые вы «новые», и вы должны прочитать «C++ 11 book» Bjarne Stroustroup, чтобы понять управление памятью. –