Username: Password: oppure
C/C++ - [C++]Metodi privati nel file di implementazione
Forum - C/C++ - [C++]Metodi privati nel file di implementazione

Avatar
Roby94 (Member)
Guru


Messaggi: 1170
Iscritto: 28/12/2009

Segnala al moderatore
Postato alle 20:24
Sabato, 24/02/2018
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.

PM Quote
Avatar
TheDarkJuster (Member)
Guru^2


Messaggi: 1620
Iscritto: 27/09/2013

Segnala al moderatore
Postato alle 22:58
Sabato, 24/02/2018
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....

PM Quote