Pytanie : Dlaczego dobrze

I mieć projekt/cd problem, i wykładowca znać jaki rozwiązanie choose.

ClassWithData - być klasa który przechować dane dla ClassWithFunction
ClassWithFunction - być klasa który robić rozwiązanie swój funkcja

class A
{
ClassWithData cd;
ClassWithFunction cf;
private:
RunWrapper ()
{
cf.function (cd);            
}
};

OR

class A
{
ClassWithData cd;
ClassWithFunction cf;
private:
RunWrapper (ClassWithData& x)
{
cf.function (x);            
}
};

(RunWrapper być ofcourse intymny)
Iam wprawiać w zakłopotanie z/>
ponieważ, czasem i pisać jak w pierwszy przykład i czasem a jak drugi bez jakaś reson.

Odpowiedź : Dlaczego dobrze

Ok I widzieć, dzięki dla the chodnikowiec. :)

Ten kod wyraźnie overcomplicating rzecz, właściwie swój jedyny (1) klasa potrzebować, raczej 3.

Pozwalać wezwanie ono "Proces":

klasowy Proces
{
społeczeństwo:
    Proces (std:: wstring executable_name_, std:: wstring command_line_);
    ~Process (pustka);

    kawitacyjny StartProcess ();

intymny:
    kawitacyjny CreateProcessAsActiveSession ();
    bool GetActoveConsoleSessionId (DWORD& session_id);

intymny:
    std:: wstring executable_name_;
    std:: wstring command_line_;
};

The członek-funkcja "StartProcess" należeć w ten klasa, ponieważ potrzebować ono potrzebować pod względem dane, być tutaj.

Ty widzieć ono mieć wszystkie the funkcjonalność, jako the 3 klasa, ale ono obudowywać the dane i the funkcja który działać dalej że dane w (1) miejsce. Programowanie być programowanie znaczyć "Obudowa" pod względem OO-Programowanie.
Używać ono mieć czysty interfejs i być łatwy.

Być może ono robić ono jaśniejszy, jeżeli ty myśleć o dostawianie nowy funkcjonalność, jak KillProcess i myśleć, myśleć należeć w ten klasa. Utrzymywać the dane i the funkcja który działać dalej że dane wpólnie w (1) miejsce.
Inne rozwiązania  
 
programming4us programming4us