Generalnie pisze program na laborki z programowania obiektowego i zaczynamy od struktur i funkcji globalnych, wydaje mi się dlatego żeby docenić obiektowość i klasy. Ale ok do rzeczy
Main:
int _tmain(int argc, _TCHAR* argv[])
{
struct Personel * marcin;
marcin=(struct Personel *)malloc(sizeof(struct Personel));
struct Oddzial onkologia;
onkologia.nazwa="Onkologia";
Personel(marcin,"Marcin","Mierzejewski",&onkologia,"Mezczyzna","05.12.1991");
return 0;
}
klasy..tfu struktury:
struct Oddzial{
string nazwa;
struct Personel * ordynator;
};
struct Personel{
string imie;
string nazwisko;
Oddzial * oddzial;
string dataUrodzenia;//ddmmrrrr
string plec;
};
"Konstruktor":
void Personel(Personel * nazwa,string im,string na,Oddzial * od,string pl,string du)
{
nazwa->imie=im;
nazwa->nazwisko=na;
nazwa->oddzial=od;
nazwa->plec=pl;
nazwa->dataUrodzenia=du;
}
Ok to może powiem w czym problem.kod się bez problemu kompiluje natomiast przy wywołaniu konstruktora zaczynają sie dziwne rzeczy dziać, po prostu nie da rady przepisać stringa do pola. w "autos" cały czas pokazuje <badPtr> i teraz tak moje przypuszczenia które sprawdziłem przed wysłaniem postu tutaj.
-wywołałem funkcje z prawdziwymi obiektami typu string a nie jakimiś const [] charami castowanymi dopiero później na sting,niestety nic to nie zdziałało
-wywaliłem ciało funkcji- nic się nie popsuło a ja się upewniłem że błąd musi być własnie w tym ciele.
-zmieniłem nazwa->imie na *nazwa.imie ale to chyba na odwrót było bo coś się kompilator czepiał: D
Ok powiem tak nie oczekuje gotowego rozwiązania bo bardzo chce się tego nauczyć, fajnie by było usłyszeć co warto sprawdzić i co może byc ew. przyczyną nawet tak na szybko bez wklejania tego do swojego IDE.
w ten sposob mi działa:
struct Personel wojtek;
Personel(&wojtek,"Marcin","Mierzejewski",&onkologia,"Mezczyzna","05.12.1991");
jednak potrzebuje użyć malloca ponieważ tego wymaga prowadzący a i usuwanie ma korzystać z funkcji free która może być wywoływana chyba tylko na rzecz obiektów stworzonych mallociem