zaczynam naukę C++ i szukam właśnie czegoś o dzieleniu programu na klasy. Czego dokładnie nie wiem:
Czy - tak jak w javie - można rozbić program na pliki (np. Main.java, Dane.java itp.), a potem pobierać z tych plików funkcje? W każdym pliku jest klasa która przechowuje odpowiednie funkcje. Klasy nawzajem pobierają je od siebie.
Można,tak się robi duże programy przeglądarki internetowe odtwarzacze,itd.,możesz napisać swoją klasę zapisać kod w pliku,a potem ten plik dołączasz,duże programy są dzielone na moduły,duże programy składają się nawet z kilkuset plików,gdzie część to definicje,deklaracje klas,funkcji jako dodatkowe pliki nagłówkowe,w kodzie głównym wywołujesz co potrzeba,sama funkcja main jest funkcją główną
public - funkcja publiczna widoczna w całym programie,jej zmienne statyczne (static) można wywołać w innych funkcjach
to robisz tak że piszesz klasę publiczna,statyczną,albo prywatną
Teraz jedna z funkcji z klasy B dodaje 1 do tej zmiennej.
Potem jedna z funkcji z klasy C także dodaje 1.
W javie w takim przypadku trzeba określić zmienną jako statyczną. Inaczej w wyniku końcowym zmienna1 bylaby równa 1 a nie 2. Czy tutaj trzeba tez cos takiego zrobic?
W C++ też są zmienne statyczne,Java jest jakby rozwinięciem C++,zauważ,że są to trochę podobne do siebie języki,instrukcje warunkowe,pętle,zapisywane są podobnie
A ja sugeruję poczytać jakąś książkę albo tutorial o podstawach języka. To szybsze i bardziej efektywne niż pytanie o każdą z nich oddzielnie na forum. ;]
Hmmm. W jednym pliku (tj. main.cpp) to działa, ale jak sobie rozbilem to na 2 pliki to już nie działa. Wyskakuje:
Kod: main.cpp
#include
int main()
{
Ptak ptak;
ptak.jedz(); //metoda z klasy Zwierze
ptak.lec(); //metoda z klasy Ptak
Ryba *ryba=new Ryba();
ryba->jedz(); //metoda z klasy Zwierze
ryba->plyn(); //metoda z klasy Ryba
}
nowaklasa.cpp
#include
#include
class Ptak{
public:
Ptak();
void lec();
};
class Ryba{
public:
Ryba();
void plyn();
};