C++/ Dzielenie programu na pliki

C++/ Dzielenie programu na pliki
Tysiek
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 3
0

Witam, mam pytanie odnośnie programu szyfrującego.
Chciałam w pliku nagłówkowym zrobić możliwość wyboru, które szyfrowanie ma być użyte z trzech możliwości ( każde szyfrowanie będzie w osobnym pliku źródłowym), ale nie wiem czy mogę. Jeśli nie, to jak mam tą kwestię rozwiązać?
Dziękuję za pomoc.

twonek
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 2500
1

A dlaczego w pliku nagłówkowym? Dlaczego zwykły if nie wystarcza?

Kopiuj
void szyfrujA() {}
void szyfrujB() {}
void szyfrujC() {}
void szyfruj(int metoda)   // enum byłby czytelniejszy
{
    if (metoda == 0) 
        szyfrujA();
    else if (metoda == 1) 
        szyfrujB();
    else 
        szyfrujC();
}
Tysiek
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 3
0

Ponieważ jest to na projekt zaliczeniowy i muszę mieć podział na pliki, nie mogę zrobić w jednym niestety. A, że pierwszy raz dziele program na pliki, to jestem trochę zielona.

twonek
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 2500
1

szyfujA.h

Kopiuj
void szyfrujA();

szyfrujB.h

Kopiuj
void szyfrujB();

szyfrujC.h

Kopiuj
void szyfrujC();

szyfruj.h

Kopiuj
#include "szyfrujA.h"
#include "szyfrujB.h"
#include "szyfrujC.h"
// powyższe include'y nie są stricte konieczne, ale dla późniejszej wygody
void szyfruj(int metoda);

szyfrujA.cpp

Kopiuj
#include "szyfrujA.h"
void szyfrujA()
{
    ...
}

analogicznie dla B i C

szyfruj.cpp

Kopiuj
#include "szyfruj.h"
void szyfruj(int metoda)
{
    ...
}
_13th_Dragon
  • Rejestracja: dni
  • Ostatnio: dni
4
Kopiuj
//szyfrujA.h
void szyfrujA();
Kopiuj
//szyfrujA.cpp
void szyfrujA() { ... }
Kopiuj
//szyfrujB.h
void szyfrujB();
Kopiuj
//szyfrujB.cpp
void szyfrujB() { ... }
Kopiuj
//szyfrujC.h
void szyfrujC();
Kopiuj
//szyfrujC.cpp
void szyfrujC() { ... }
Kopiuj
//szyfruj.h
#include "szyfrujA.h"
#include "szyfrujB.h"
#include "szyfrujC.h"

void szyfruj(int metoda);
typedef void SZYFRUJ();
Kopiuj
//szyfruj.cpp
#include "szyfruj.h"
struct { SZYFRUJ *szyfruj; } metody[] = { {&szyfrujA},{&szyfrujB},{&szyfrujC} };

void szyfruj(int metoda) { metody[metoda].szyfruj(); }
Tysiek
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 3
0

Dziękuję.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.