Udało mi się zrobić żeby nie wywalało include<map> (przesunąłem po prostu poniżej stdafx :D ). Ale coś ten sposób nie chce działać, albo ja nie wiem jak to zrobić.
powiedzmy, że jest tak:
class samochod
{
public:
string typ; //to tak na przykład
}
class mercedes : public samochod
{
string nazwa;
int silnik;
}
i teraz tworzę nowy obiekt
mercedes vito;
vito.nazwa = "vito";
vito.silnik = 2;
tak wygląda moja struktura. Jak mam użyć tego sposobu (na tym przykładzie) żeby mi stworzyło nowy obiekt klasy "mercedes"? co gdzie trzeba wpisać? I co to za liczby w tych nawiasach?
Mam mniej więcej tak:
std::map<std::string, mercedes> nowy;
nowy["jakistammodel"]=mercedes("jakistammodel", 233, 12.3);
nowy["jakistammodel"].nazwa="Jakistammodel";
jak zrobię z tymi liczbami to wywala:
'main::mercedes::mercedes' : no overloaded function takes 3 arguments
jak usunę liczby to wywala:
'<function-style-cast>' : cannot convert from 'const char [9]' to 'main::mercedes'
Nie bardzo wiem jak ten sposób działa. Ja rozumiem to tak że powinien powstać obiekt
mercedes jakistammodel;
i potem wpisanie jakiejś wartości do zmiennej klasy.
jakistammodel="Jakistammodel";
Jak usunę w ogóle tą część
=mercedes("jakistammodel", 233, 12.3)
,że zostanie samo
nowy["jakistammodel"];
to wtedy się kompiluje ale działać nie działa bo próba wypisania
cout << jakistammodel.nazwa
wywala błąd że jakistammodel jest nie zdefiniowany
Co robię źle?
Jak dokładnie na tym podanym przykładzie zrobić aby powstał nowy obiekt klasy mercedes o nazwie np. "AMG"? Jakby był jeden działający przykład to bym rozkminił całą ideę wtedy.
edit: Azarien, a czy to ma jakieś znaczenie w działaniu z tymi include w stdafx czy po prostu estetyka? Bo jeśli estetyka to niech już będzie jak jest. Błędów już mi z tym nie wywala i w tej kwestii jest wszystko ok. A estetyka mnie na razie nie interesuje.