Libs und Header (?)



  • Hallo,
    ich hab da mal eine frage. undzwar würde mich es mal interessieren, wenn z.b. ein entwickler x seine klasse an person y verkauft und ihm nur die vorkompilierte .lib-datei gibt (damit y nich den quellcode von x sehen kann) muss er ihm doch auch die dazugehörige *.h-Datei geben (oder?! hab ich ma so gehört, sonst gehts angeblich nich). aber in der .h-datei sind doch die datenkapselung (private, public, protected), die könnte doch y einfach ändern, aber das ist ja nich die funktion von private etc.
    Verstehe ich da was falsch?



  • Zu sehen das eine Klasse ein private member namens X vom Typ int enthält hilft
    doch keinem, weil Zugriff erhält man trotzdem nicht. Auch die Signaturen von
    "nicht"-public Funktionen helfen nicht weiter, weil die Implementierung
    kann ja nicht geändert werden.
    In diesem Sinne, seh ich da keine Gefahr. 🙂

    mfg JJ



  • Achja stimmt! Also muss der Entwickler dem "Kunden" seine *.h-Datei gar nicht geben? Er kann alternativ einfach ihm eine Art Dokumentation mitgeben wo dann die Rückgabewerte, Namen, Parameter etc. aufgelistet sind? Sehe ich das so richtig?



  • nein, die Header Dateien sollte man schon mitgeben 🙄

    Mittels PIMPL-Idiom kannst du private-Member verstecken.



  • kingruedi schrieb:

    nein, die Header Dateien sollte man schon mitgeben 🙄

    Also das ist PFLICHT, sonst funktioniert sein Programm nicht? Oder meinst du, weil es praktischer ist oder weil du es so machen würdest?



  • weil du ohne die Header Dateien die Library nicht wirklich nutzen kannst. Du müsstest ja erst die Header Dateien rekonstruieren.

    Denk doch mal nach.



  • kingruedi schrieb:

    weil du ohne die Header Dateien die Library nicht wirklich nutzen kannst. Du müsstest ja erst die Header Dateien rekonstruieren.

    Denk doch mal nach.

    Bin noch nicht so der Profi. Ich dachte dass es ja schon in der Vorkompilierten alles vorhanden ist, was auch in der .h-Datei steht.
    Also die Problematik verstehe ich noch nicht so ganz o_O


Anmelden zum Antworten