Oppure

Loading
24/02/18 19:24
Roby94
Buonasera a tutti,
sto scrivendo delle librerie un po' particolari(non troppo). Ho una classe che ha un interfaccia fissa, ma viene implementata per diversi dispositivi, su file cpp distinti. Uno schema per capirci meglio.

class.h contenente l'interfaccia
class1.cpp prima implementazione per i dispositivi x
class2.cpp seconda implementazione per i dispositivi y

Questo viene fatto perché l'interfaccia viene usata da alcune libreria a livello più alto. Non ho scelto la strada dell'ereditarietà perché a livello applicativo deve essere trasparente che tipo di implementazione verrà adoperata; l'utente usa la classe attraverso la sua interfaccia e un programma a livello di compilazione include l'implementazione per il dispositivo selezionato.
Fatta la premessa il "problema"...
In C++ è possibile aggiungere metodi privati nel file di implementazione quando il prototipo della classe è già stato definito nell'header file?
Chiedo questo perché per me sarebbe molto comodo aggiungere alla classe dei metodi privati che verranno gestiti interamente dentro i file di implementazione. A livello strettamente logico mi aspetto sia possibile visto che stiamo parlando di metodi privati e non di variabili, ma che io sappia nel c++ la ridefinizione delle classi partial non è consentito come lo è per esempio in C#. Quindi chiedo a voi. In caso non fosse possibile non sarebbe una tragedia in quanto mi limiterei a scrivere le funzioni che mi servono all'interno dei file cpp non come metodi della classe.

Vi ringrazio.
aaa
24/02/18 21:58
TheDarkJuster
In genere la norma è avere dei sorgenti che sono dipendenti strettamente dalla piattaforma, che definiscono solo funzioni e 1 classe che le usa, quindi ti consiglierei di seguire questa strada piuttosto che complicarti la vita a compilare classi con implementazioni diverse....
aaa