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.
0
1
A dlaczego w pliku nagłówkowym? Dlaczego zwykły if
nie wystarcza?
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();
}
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.
1
szyfujA.h
void szyfrujA();
szyfrujB.h
void szyfrujB();
szyfrujC.h
void szyfrujC();
szyfruj.h
#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
#include "szyfrujA.h"
void szyfrujA()
{
...
}
analogicznie dla B i C
szyfruj.cpp
#include "szyfruj.h"
void szyfruj(int metoda)
{
...
}
4
//szyfrujA.h
void szyfrujA();
//szyfrujA.cpp
void szyfrujA() { ... }
//szyfrujB.h
void szyfrujB();
//szyfrujB.cpp
void szyfrujB() { ... }
//szyfrujC.h
void szyfrujC();
//szyfrujC.cpp
void szyfrujC() { ... }
//szyfruj.h
#include "szyfrujA.h"
#include "szyfrujB.h"
#include "szyfrujC.h"
void szyfruj(int metoda);
typedef void SZYFRUJ();
//szyfruj.cpp
#include "szyfruj.h"
struct { SZYFRUJ *szyfruj; } metody[] = { {&szyfrujA},{&szyfrujB},{&szyfrujC} };
void szyfruj(int metoda) { metody[metoda].szyfruj(); }
0
Dziękuję.