Czy jest coś złego w tym, że jedna klasa (jedna .h) została zaimplementowana na wielu plikach źródłowych? Zdaję sobie sprawę, że może to być objaw zbyt dużej ilości kodu w pojedynczej klasie, ale czy jest w tym coś złego?Jedna klasa z wieloma plikami implementacyjnymi
Na przykład:
Foo.h
class Foo
{
void Read();
void Write();
void Run();
}
Foo.Read.cpp
#include "Foo.h"
void Foo::Read()
{
}
Foo.Write.cpp
#include "Foo.h"
void Foo::Write()
{
}
Foo.Run.cpp
#include "Foo.h"
void Foo::Run()
{
}
To by mnie popchnęło. Jestem pewien, że istnieją czasami dobre (lub przynajmniej przyzwoite) powody, aby to zrobić, ale z perspektywy próby zrozumienia modelu obiektu, bleah ... aby przeskakiwać pliki, aby podążać za metodami. – Joe
Jeśli tworzysz bibliotekę, dzielenie każdej funkcji i globalnej na własny obiekt pozwala konsumentowi połączyć tylko te bity, których dotyczą, i nic więcej. Z irytacją jest jednak pracować. – ephemient
@ephemient: Dlaczego to ma znaczenie? Czy linker nie może usunąć funkcji, których nie używasz? Czy jest to po prostu dla poprawy czasów połączeń? –