1
Na warsztacie / Odp: Odp: Exe - konwersja na C++
« dnia: 11 Września 2016, 13:54:47 »
Generalnie struktura powstała już w C i może zawierać dane i wskaźniki na dane/wskaźniki na funkcję, i tak jak napisał @Benek, cała jej zawartość jest publiczna. Klasa została wprowadzona w C++ i może zawierać funkcje (metody), posiada konstruktory i destruktor, domyślnie (bez użycia słów kluczowych public: albo protected:) jej zawartość jest prywatna.
Nie jestem pewny, jak struktura zachowuje się w C++ (nigdy np. funkcji w strukturze pisać nie próbowałem), ale raczej dobrze jest trzymać w kodzie takie rozróżnienie i struktur używać do tego, do czego historycznie służyły.
Klasa w C++ nie musi mieć zdefiniowanych konstruktorów, jeżeli nie ma, używane są domyślne. ZTCW zwykły konstruktor wtedy nic nie robi, kopiujący po kolei przepisuje zawartość wszystkich zmiennych. Własne konstruktory i destruktor przede wszystkim trzeba zdefiniować, jeżeli w klasie wykorzystuje się dynamicznie przydzielaną pamięć - ale czasami to może być też wygodne w innych sytuacjach, po prostu jak przy inicjalizacji obiektu trzeba coś zrobić.
Co do ostrzeżenia linkera - próbowałeś użyć dyrektyw IFNDEF?
Nie jestem pewny, jak struktura zachowuje się w C++ (nigdy np. funkcji w strukturze pisać nie próbowałem), ale raczej dobrze jest trzymać w kodzie takie rozróżnienie i struktur używać do tego, do czego historycznie służyły.
Klasa w C++ nie musi mieć zdefiniowanych konstruktorów, jeżeli nie ma, używane są domyślne. ZTCW zwykły konstruktor wtedy nic nie robi, kopiujący po kolei przepisuje zawartość wszystkich zmiennych. Własne konstruktory i destruktor przede wszystkim trzeba zdefiniować, jeżeli w klasie wykorzystuje się dynamicznie przydzielaną pamięć - ale czasami to może być też wygodne w innych sytuacjach, po prostu jak przy inicjalizacji obiektu trzeba coś zrobić.
Co do ostrzeżenia linkera - próbowałeś użyć dyrektyw IFNDEF?
Kod: [Zaznacz]
#ifndef _NazwaPliku_H_
#define _NazwaPliku_H_
(kod)
#endif _NazwaPliku_H_
Wtedy jeżeli oznaczony w ten sposób plik jest przy linkowaniu dołączany kilka razy, kod z niego trafia do głównego tylko raz.