Kolejne pytanie z cyklu "dziwnych" ;)
Sytuacja następująca:
tworzę osobny plik nazwany klasa.cpp
, który chcę sobie później gdzieś include
'ować.
W pliku mam stworzoną przykładową klasę:
class gucio {
public:
void dupa();
};
void gucio::dupa() {
}
Postępuję zgodnie z informacjami znalezionymi w necie (pierwszy przykład z brzegu - https://cpp0x.pl/kursy/Kurs-C++/Dodatkowe-materialy/Funkcje-w-klasie-czyli-metody/312) - teoretycznie jest możliwe definiowanie treści metody poza klasą. Ale odpalając w/w kod, dostaję następujący błąd podczas kompilacji:
klasa.cpp multiple definition of `gucio::dupa()'
[...]
klasa.cpp first defined here
Można to obejść przez tworzenie plików nagłówkowych, ale wolałbym tego uniknąć.
Stąd 2 pytania:
-
czy można (jeśli tak - to w jaki sposób) tworzyć w pliku CPP najpierw samą strukturę klasy, a później/poniżej wpisać ciała metod? Wiem, że można metody napisać wprost w ciele klasy, ale takie rozwiązanie mi się nie podoba, bo robi się jeden długi ciąg trudny do przeglądania. A ja wolę mieć najpierw definicję samej klasy, a dopiero poniżej treść metod. Czy da się tak to zrobić (bez rozbijania na pliki
.h
i.cpp
)? -
Jeśli jednak nie da się uniknąć tego rozbicia - czy są jakieś sposoby/pluginy do
VSCode
, które jakoś automatyzują/ułatwiają pracę z tymi 2 plikami jednocześnie? W sensie - tworzę/zmieniam coś w pliku CPP i zmiana się nanosi także na odpowiedni plik H (oraz odwrotnie). Na razie ma to ręcznie zsynchronizowane, co jest trochę niefajne - muszę zmiany nanosić dwa razy, w każdym z plików osobno, nie są one z sobą w żaden sposób połączone/zsynchronizowane.