1. mam funkcje ktora chce czesto wykorzystywac w roznych kasach co mam zrobic.. dodac ta funkce do kazdej klasy czy utorzyc klase dla tej funkcji i w kazdej innej klasie tworzyc obiekt i wywolywac ta potrzebna funkcje..czy moze utworzyc klase dla tej funkcji i zrobic tak zeby kazda klasa dziedziczyla po tamtej
Oczywiście że wydzielić funkcję do oddzielnego pliku *.cpp i *.hpp oraz włączyć nagłówki do klas używających tejże funkcji. Pamiętaj że programowanie obiektowe to nie jest "fanatyzm obiektowy". Zwykłe swobodne funkcje są ok.
2. mam klase A kora tworzy obiekt klasy B jak wewnatrz klasy B moge odniesc sie do obiektu klasy A jego zmiennych itp.
W trakcie tworzenia obiektu klasy B w klasie A, przekaż do obiektu klasy B referencję lub wskaźnik do obiektu klasy A.
3.klasa A utworzyla przykladowo obiekty klasy B i C a klasa B utworzyla obiekt klasy D jak z obiektu klasy D moge dostac sie do zmiennych obiektu klasy C ktory utworzyla klasa A... i ogolem jak mozna zrobic wymiane danych miedzy obiektami roznych klas w optymalny sposob
W trakcie tworzenia obiektu typu C w klasie A, może ona zachować referencję lub wskaźnik do obiektu klasy C. Wystarczy wtedy z obiektu klasy D, poprosić klasę A o zwrócenie tej referencji.
Twoje problemy w mojej ocenie są nieco teoretyczne. Jeśli podasz choćby jakiś prosty przykład problemu, będę mógł się do tego odnieść. W projektowaniu obiektowym jest wiele "to zależy". Nawet rady powyżej są "zawieszone w teoretycznej przestrzeni" i mogą wziąć w łeb jeśli chodzi o konkretne zastosowanie.
Proponuję Ci abyś napisał prostą grę (np. warcaby) pracującą wyłącznie na konsoli ale zaprojektowaną obiektowo. Możesz później podać tu link do źródeł a dostaniesz informację zwrotną.