[BCB] Metoda klasy w zewnetrznym pliku

0

Witam
Jestem tu nowy i mam nastepujacy problem, dla ktorego nie znalazlem na forum rozwiazania :( Mam nadzieje ze uda mi sie go prosto opisac i dzieki temu dostane jakas podpowiedz.
Mam zdefiniowana klase ktora posiada kilka metod, np.

class Test {
public:
void Sprawdz(void);
void Punkt(void);
}

Wszytkie metody dzialaja super jezeli wywoluje je w nastepujacy sposob:
Test->Sprawdz();

Mi natomiast chodzi o to, abym mogl je wywolywac bezposrednio, tzn. Sparwdz() w zwnetrznym pliku ktory dolacze do projektu. Wywolywanie takie jak dotychczas czyli poprzez klase nie wchodzi w gre, gdyz metody te maja byc wykorzystane jako symulacja juz istniejacego kodu.
Myslalem nad zdeklarowaniem publiczej metody klasy Test, lecz jej implementacje chcialbym zamiescic w odzielnym pliku, gdzie wklejony zostanie kod symulowanego urzadzenia. Tylko w jaki sposob moge to zrobic, aby to ruszylo? Jak na razie 2 dni walki spelzly na niczym ;( Moze jakies inne podpowiedzi??
Bede wdzieczny za wszelkie podpowiedzi i mam nadzieje, ze w miare jasno opisalem moj problem

Pozdrawiam
BlackBIT

0

By można było pisać 'Sprawdź()' musi to być funkcja ogólna (tzw. nie należeć do tej klasy) .... czyli po prostu musiałbyś zadeklarować jako zwykłą funkcję.

0

Jeśli jeszcze potrzebujesz rady...

No nie za bardzo jasno to opisałeś, bo nasuwają mi się dwa rozwiązania:
(nie za bardzo wiadomo, czy obiektu będą istniały w tym drugim pliku, czy nie można ich stworzyć i jakie są w ogóle powiązanie między nimi?)

  1. Statyczne metody w klasie Test, czyli:
    class Test
    {
    public:
    static void Metoda();
    };

Można wywołać z dowolnego pliku, bez obiektu, przez Test::Metoda()

  1. Odpowiednia hierachia klas, np.:
    class AbstractTest
    {
    public:
    void Metoda1() =0;
    //...itd
    };
    class Test1 : public AbstractTest
    {
    void Metoda1() { ...kod metody }
    //...
    };
    class InnyTest : public AbstractTest
    {
    void Metoda1() { ...kod metody }
    //...
    };

Oczywiście ten sposób będzie wymagał stworzenia obiektu klasy konkretnej, ale za to mamy interfejs klasy abtrakcyjnej, czyli jeden plik może wykorzystywać wskaźnik do klasy AbstractTest ale już co to konkretnie za obiekt będzie można zdecydować w innym miejscu. Oczywiście jakoś trzeba je zgrać ze sobą, np. deklarując globalny wskaźnik, lub przekazując go w jakiś inny sposób. No niestety z braku danych o Twoim projekcie więcej nie da się powiedzieć...

1 użytkowników online, w tym zalogowanych: 0, gości: 1