Die Mathe-Redaktion - 16.12.2019 06:30 - Registrieren/Login
Auswahl
ListenpunktHome
ListenpunktAktuell und Interessant ai
ListenpunktArtikelübersicht/-suche
ListenpunktAlle Links / Mathe-Links
ListenpunktFach- & Sachbücher
ListenpunktMitglieder / Karte / Top 15
ListenpunktRegistrieren/Login
ListenpunktArbeitsgruppen
Listenpunkt? im neuen Schwätz
ListenpunktWerde Mathe-Millionär!
ListenpunktFormeleditor fedgeo
Schwarzes Brett
Aktion im Forum
Suche
Stichwortsuche in Artikeln und Links von Matheplanet
Suchen im Forum
Suchtipps

Bücher
Englische Bücher
Software
Suchbegriffe:
Mathematik bei amazon
Naturwissenschaft & Technik
In Partnerschaft mit Amazon.de
Kontakt
Mail an Matroid
[Keine Übungsaufgaben!]
Impressum

Bitte beachten Sie unsere Nutzungsbedingungen, die Distanzierung, unsere Datenschutzerklärung und
die Forumregeln.

Sie können Mitglied werden. Mitglieder können den Matheplanet-Newsletter bestellen, der etwa alle 2 Monate erscheint.

Der Newsletter Okt. 2017

Für Mitglieder
Mathematisch für Anfänger
Wer ist Online
Aktuell sind 417 Gäste und 5 Mitglieder online.

Sie können Mitglied werden:
Klick hier.

Über Matheplanet
 
Zum letzten Themenfilter: Themenfilter:
Matroids Matheplanet Forum Index
Moderiert von matph
Informatik » Programmieren » Fragen zu Software Engineering
Druckversion
Druckversion
Antworten
Antworten
Autor
Universität/Hochschule Fragen zu Software Engineering
Chlorel
Ehemals Aktiv Letzter Besuch: vor mehr als 3 Monaten
Dabei seit: 13.09.2002
Mitteilungen: 99
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Themenstart: 2010-06-13


Hallo!

Ich bin Student der Elektrotechnik im "Endstadium" sozusagen und habe ein Fach, welches mir ein paar Probleme bereitet: "Software Engineering". Im Programmieren bin ich eigentlich immer sehr gut gewesen (durchgängig einsen), jedoch geht es in diesem Fach massiv um theoretische Grundlagen, für die wir die Basis noch nicht einmal haben.

Ich habe mir von der Probe-Klausur folgende Fragen aufgeschrieben, da ich dafür nur bedingt antworten hatte. Vielleicht könnt ihr mir dabei weiterhelfen. Wenn es möglich ist nicht nur mit Lösungen, sondern auch mit kurzen Erklärungen dazu, also ein "warum". Die Lösungen die ich gefunden habe, habe ich bereits hingeschrieben.


Definition einer Modulschnittstelle
Sie benötigen ein Sicherheitsmodul, das den Namen und das Passwort als Eingabewert erhält und ein „ok“ (Wert 0) und ein „Nicht-Ok“ (Wert 1) zurückgibt.

2.1: Deklarieren Sie eine geeignete Funktion mit dem Namen safety, die diese Funktionalität bereit stellt. Hinweis: keine Definition erforderlich.
C++
int safety(char name, char passwort); 



2.2: Diese Funktion ist die externe Schnittstelle des Moduls safemod, das in Zukunft in allen Ihren Programmen integriert werden soll. Welchen Namen sollte der HeaderFile dieses Moduls tragen?
C++
safemod.h


2.3: Welchen Namen sollte das Implementierungsfile tragen?
C++
safemod.cpp


2.4: Schreiben Sie den kompletten Headerfile incl. interner Source-Dokumentation!


2.5: Der Implementierungsfile liegt Ihnen nur als Objekt vor. Welches Programm bindet dieses         Objekt in das Programmsystem ein?

Compiler (?)


2.6: Welche Vorteile ergeben sich, wenn das Modul nur als Objekt vorliegt? (1P)


Das sind die Fragen, die mir Kopfschmerzen bereiten. So ziemlich die Einzigen in der gesamten Klausur, da der Rest logisch ist. Nur diesen Teil konnte ich einfach nicht entziffern. Das ist sozusagen chinesisch für mich.

Vielen Dank schon einmal für das lesen.

Liebe Grüße
"Chlorel"
[ Nachricht wurde editiert von Chlorel am 14.06.2010 00:28:15 ]



  Profil  Quote  Link auf diesen Beitrag Link
rlk
Senior Letzter Besuch: in der letzten Woche
Dabei seit: 16.03.2007
Mitteilungen: 10604
Aus: Wien
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.1, eingetragen 2010-06-13


Hallo Chlorel,
wenn Du selbst schon programmiert hast, sind Dir dann Begriffe wie Headerdatei, Schnittstelle usw. nicht untergekommen?

2010-06-13 21:37 - Chlorel im Themenstart schreibt:
Definition einer Modulschnittstelle
Sie benötigen ein Sicherheitsmodul, das den Namen und das Passwort als Eingabewert erhält und ein „ok“ (Wert 0) und ein „Nicht-Ok“ (Wert 1) zurückgibt.

2.1: Deklarieren Sie eine geeignete Funktion mit dem Namen safety, die diese Funktionalität bereit stellt. Hinweis: keine Definition erforderlich.
C++
int safety(char name, char passwort);


Die Parameter name und passwort sind keine Buchstaben, daher ist der Typ char nicht geeignet. Welche Datentypen bieten sich hier an, welche Vor- und Nachteile haben die verschiedenen Möglichkeiten?

Der Typ int des Funktionswertes gibt keinen Hinweis auf den binären Charakter des Ergebnisses. Welcher Typ wäre hier besser und warum?

2010-06-13 21:37 - Chlorel im Themenstart schreibt:

2.2: Diese Funktion ist die externe Schnittstelle des Moduls safemod, das in Zukunft in allen Ihren Programmen integriert werden soll. Welchen Namen sollte der HeaderFile dieses Moduls tragen?

safemod.h
Ja, das ist die übliche Konvention.

2010-06-13 21:37 - Chlorel im Themenstart schreibt:
2.3: Welchen Namen sollte das Implementierungsfile tragen?

safemod.cpp
Das ist die mir am geläufigste Variante für C++, auch
safemod.cc
safemod.cp
safemod.cxx
safemod.cpp
safemod.c++
safemod.C

sind möglich und werden vom GNU C++ Compiler g++ unterstützt.

2010-06-13 21:37 - Chlorel im Themenstart schreibt:
2.4: Schreiben Sie den kompletten Headerfile incl. interner Source-Dokumentation!

Als absolutes Minimum reicht für den Inhalt des Headerfiles die Deklaration der Funktion aus 2.1 aus, aber es sollte zumindest eine Beschreibung der Funktion mit Erklärungen zu den Ein- und Ausgabeparametern, dem Rückgabewert und Einschränkungen (z.B. minimale und maximale Länge von name und passwort, in diesen erlaubte Zeichen).

2010-06-13 21:37 - Chlorel im Themenstart schreibt:
2.5: Der Implementierungsfile liegt Ihnen nur als Objekt vor. Welches Programm bindet dieses         Objekt in das Programmsystem ein?

Compiler (?)
Der Compiler erzeugt Objektcode aus dem Quellcode, der Linker setzt den Objektcode aller verwendeten Module zu einer ausführbaren Datei zusammen.

2010-06-13 21:37 - Chlorel im Themenstart schreibt:
2.6: Welche Vorteile ergeben sich, wenn das Modul nur als Objekt vorliegt? (1P)

Ein Modul (das meist mehr als eine Funktion enthält) stellt eine in der Headerdatei definierte Schnittstelle zur Verfügung, wenn diese ausreichend beschrieben ist (siehe 2.4), kann man das Modul verwenden, ohne über die Details der Implementierung Bescheid wissen zu müssen.

Welche anderen Vor- und Nachteile fallen Dir ein? Versetze Dich dazu in die Lage eines Modulanbieters und des Anwenders.

Ich hoffe, das hilft Dir,
Roland



  Profil  Quote  Link auf diesen Beitrag Link
Chlorel
Ehemals Aktiv Letzter Besuch: vor mehr als 3 Monaten
Dabei seit: 13.09.2002
Mitteilungen: 99
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.2, vom Themenstarter, eingetragen 2010-06-14


Hallo Roland,

danke für deine Antwort. Ich bin ziemlich erschlagen von diesem Informatik-Deutsch. Besonders 2.4 hat bei mir nur Fragezeichen hinterlassen. :)


wenn Du selbst schon programmiert hast, sind Dir dann Begriffe wie Headerdatei, Schnittstelle usw. nicht untergekommen?

Doch natürlich. Der letzte Kontakt damit liegt aber schon fast 3 Jahre hinter mir. Ich kann mich kaum daran erinnern. Wir sind damals auch eher auf die Praxis eingegangen und nicht so sehr auf die Theorie.

Ich bin leider in meiner bisherigen Informatik-Karriere auch zu sehr zwischen den verschiedenen C Typen gesprungen (C, C++, C#) weshalb sich irgendwann Verwirrung auftat. :)


2.1: Deklarieren Sie eine geeignete Funktion mit dem Namen safety, die diese Funktionalität bereit stellt. Hinweis: keine Definition erforderlich.
C++
int safety(char name, char passwort);

Die Parameter name und passwort sind keine Buchstaben, daher ist der Typ char nicht geeignet. Welche Datentypen bieten sich hier an, welche Vor- und Nachteile haben die verschiedenen Möglichkeiten?

Das ist mein Fehler. Eigtl. wollte ich einen String-Array angeben im Sinne von:
C++
char name[20], char passwort[20]

alternativ:
C++
string name, string name 

Ich vergesse leider immer wieder welche Datei ich implementieren muss um den Befehl string zu nehmen. Vorteil am String ist, dass die Länge nicht so statisch ist wie beim Array. Das ermöglicht eine dynamischere Länge der Namen. Einen direkten Vorteil bei der Verwendung von einem Char-Array kann ich nicht entdecken, außer es ist gewollt, dass der Name bzw. das Passwort eine feste Länge erhalten.



Der Typ int des Funktionswertes gibt keinen Hinweis auf den binären Charakter des Ergebnisses. Welcher Typ wäre hier besser und warum?"

Blicke ich 5 Jahre zurück (meiner C++ Zeit) würde ich den Typ bool nehmen. Auch hier weiß ich leider nicht mehr, welche Datei ich für diesen Befehl implementieren muss.
Der Vorteil am Typ "bool" wäre die klar vorgegebenen 2 Zustände und der niedrigere Speicherverbrauch. Auch ist besser ersichtlich, dass es sich hier nur um 2 Zustände handeln kann.


2010-06-13 21:37 - Chlorel im Themenstart schreibt:
2.4: Schreiben Sie den kompletten Headerfile incl. interner Source-Dokumentation!

Als absolutes Minimum reicht für den Inhalt des Headerfiles die Deklaration der Funktion aus 2.1 aus, aber es sollte zumindest eine Beschreibung der Funktion mit Erklärungen zu den Ein- und Ausgabeparametern, dem Rückgabewert und Einschränkungen (z.B. minimale und maximale Länge von name und passwort, in diesen erlaubte Zeichen).

Also würde ich schreiben:
C++
/*
Sicherheits-Modul
Beschreibung:
Ein- und Ausgabeparameter:
Rückgabewert:
Einschränkungen:
*/
 
bool safety(string name, string passwort);

Ist das soweit okay und ausreichend?


2.5: Der Implementierungsfile liegt Ihnen nur als Objekt vor. Welches Programm bindet dieses         Objekt in das Programmsystem ein?

Compiler (?)
Der Compiler erzeugt Objektcode aus dem Quellcode, der Linker setzt den Objektcode aller verwendeten Module zu einer ausführbaren Datei zusammen.

Also ist "Linker" die richtige Antwort?


2.6: Welche Vorteile ergeben sich, wenn das Modul nur als Objekt vorliegt? (1P)

Ein Modul (das meist mehr als eine Funktion enthält) stellt eine in der Headerdatei definierte Schnittstelle zur Verfügung, wenn diese ausreichend beschrieben ist (siehe 2.4), kann man das Modul verwenden, ohne über die Details der Implementierung Bescheid wissen zu müssen.

Welche anderen Vor- und Nachteile fallen Dir ein? Versetze Dich dazu in die Lage eines Modulanbieters und des Anwenders.

Danke für die Definition! Hat mir sehr geholfen.

Ganz klar die Vererbung (Wiederverwendung von Methoden etc. und dadurch Einsparung der Zeit). Ein Objekt von dem geerbt wird ist in aller Regel schon im Einsatz gewesen. So ist es durchschnittlich "fehlerfreier". Mensch spart Zeit bei der Programmierung und auch bei der evtl. Erweiterung des Moduls.

Nachteilig für den Anbieter könnte sein, dass er geistiges Eigentum preisgibt und so evtl. einen Einblick in die Lösung komplexer Aufgaben ermöglicht. Dies könnte sich (betriebswirtschaftlich) nachteilig für den Anbieter auswirken.
Nachteilig für den Anwender könnte sein, dass er die evtl. eigenen Konventionen im Unternehmen so nicht einhalten kann. Möchte er oder eine andere Person des Unternehmens dieses Modul jetzt erweitern, könnte es zu Problemen kommen.

Ein weiterer Nachteil gerade im Hinblick auf ein Sicherheitsmodul wäre, dass sich mit einer Veröffentlichung der Sicherheitsroutinen evtl. auch Schwachstellen für Angreifer klar hervortun.


Ich weiß gar nicht wie ich mich für deine Antwort bedanken soll! Das Fach ist für mich ein absolutes Kauderwelsch... Wir müssen um die 35 A4 Seiten Definitionen auswendig lernen. Das hier die Verständlichkeit leidet, ist logisch. :(

Also vieeelen vielen Dank noch einmal!

Liebe Grüße
"Chlorel"


Edit: Formatierung verbessert.
[ Nachricht wurde editiert von Chlorel am 14.06.2010 00:30:26 ]



  Profil  Quote  Link auf diesen Beitrag Link
rlk
Senior Letzter Besuch: in der letzten Woche
Dabei seit: 16.03.2007
Mitteilungen: 10604
Aus: Wien
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.3, eingetragen 2010-06-15


Hallo Chlorel,
es freut mich, dass ich Dir helfen konnte.
2010-06-14 00:12 - Chlorel in Beitrag No. 2 schreibt:
Doch natürlich. Der letzte Kontakt damit liegt aber schon fast 3 Jahre hinter mir. Ich kann mich kaum daran erinnern. Wir sind damals auch eher auf die Praxis eingegangen und nicht so sehr auf die Theorie.
Ich finde, dass diese Fragen sich auf praktische Probleme beziehen. Im Vergleich zu oft sehr vagen Begriffen wie "Modularität", "Kopplung" usw. wie sie im Software Engineering verwendet werden, sind diese Fragen ja noch angenehm konkret.

2010-06-14 00:12 - Chlorel in Beitrag No. 2 schreibt:
Ich bin leider in meiner bisherigen Informatik-Karriere auch zu sehr zwischen den verschiedenen C Typen gesprungen (C, C++, C#) weshalb sich irgendwann Verwirrung auftat. :)


2.1: Deklarieren Sie eine geeignete Funktion mit dem Namen safety, die diese Funktionalität bereit stellt. Hinweis: keine Definition erforderlich.

Das ist mein Fehler. Eigtl. wollte ich einen String-Array angeben im Sinne von:
C++
char name[20], char passwort[20]

alternativ:
C++
string name, string name 

Ich vergesse leider immer wieder welche Datei ich implementieren muss um den Befehl string zu nehmen. Vorteil am String ist, dass die Länge nicht so statisch ist wie beim Array. Das ermöglicht eine dynamischere Länge der Namen. Einen direkten Vorteil bei der Verwendung von einem Char-Array kann ich nicht entdecken, außer es ist gewollt, dass der Name bzw. das Passwort eine feste Länge erhalten.

Du musst keine Datei implementieren, um den Typ string verwenden zu können. Meinst Du vielleich inkludieren?
Nach einem
C++
#include <string>
kennt der Compiler den Datentyp string und die dazugehörenden Methoden, deren Beschreibung Du zum Beispiel in dieser C++ Referenz findest.

Wenn Du den Typ string nicht verwenden willst, kannst Du auch Arrays char[] nehmen, die Länge kann in diesem Beispiel durchaus variabel sein, weil das Ende durch ein Nullzeichen '\0' angezeigt wird. Für kompliziertere Operationen ist aber string praktischer.

2010-06-14 00:12 - Chlorel in Beitrag No. 2 schreibt:

Der Typ int des Funktionswertes gibt keinen Hinweis auf den binären Charakter des Ergebnisses. Welcher Typ wäre hier besser und warum?"

Blicke ich 5 Jahre zurück (meiner C++ Zeit) würde ich den Typ bool nehmen. Auch hier weiß ich leider nicht mehr, welche Datei ich für diesen Befehl implementieren muss.
Der Vorteil am Typ "bool" wäre die klar vorgegebenen 2 Zustände und der niedrigere Speicherverbrauch. Auch ist besser ersichtlich, dass es sich hier nur um 2 Zustände handeln kann.
Zum Glück kann man solche Dinge ja nachsehen: laut dieser Seite ist bool ein in C++ vordefinierter Typ, es muss nichts inkludiert (und schon gar nicht implementiert) werden.
Deine Begründung ist richtig, der erste und der dritte Vorteil unterscheiden sich aber kaum voneinander.

2010-06-14 00:12 - Chlorel in Beitrag No. 2 schreibt:

2.4: Schreiben Sie den kompletten Headerfile incl. interner Source-Dokumentation!

Also würde ich schreiben:
C++
/*
Sicherheits-Modul
Beschreibung:
Ein- und Ausgabeparameter:
Rückgabewert:
Einschränkungen:
*/
 
bool safety(string name, string passwort);

Ist das soweit okay und ausreichend?
Unter der Annahme, dass unter den Überschriften noch Text kommt, ist es ein guter Anfang. Weitere Informationen zum Autor, Datum der letzten Änderung, Hinweise zu der Lizenz usw. wären hilfreich. Bei komplizierteren Headerdateien ist ein Schutz gegen mehrfaches Inkludieren in der Form
C oder C++
#ifndef SAFETY_H
  // hier kommen Deklarationen und Definitionen
#define SAFETY_H 1
#endif
üblich. Oft wird die Form solcher Beschreibungen in einem Projekt festgelegt, als Beispiel kannst Du Dir etwa die GNU Coding Standards ansehen.

2010-06-14 00:12 - Chlorel in Beitrag No. 2 schreibt:

2.5: Der Implementierungsfile liegt Ihnen nur als Objekt vor. Welches Programm bindet dieses Objekt in das Programmsystem ein?

Also ist "Linker" die richtige Antwort?
Ja, wobei der Linker oft mit dem selben Kommando wie der Compiler aufgerufen wird, zum Beispiel der GNU C++ Compiler:
shell
  1. g++ safety.cpp -o safety.o
  2. g++ hauptprogramm.cpp -o hauptprogramm.o
  3. g++ safety.o hauptprogramm.o -o hauptprogramm
In den Zeilen 1 und 2 wird der Compiler aufgerufen, um die  Quelldateien (.cpp) in Objektdateien (.o) zu übersetzen, in der Zeile 3 werden die beiden Objekdateien und die verwendeten Standardfunktionen aus der C++ Bibliothek zu der ausführbaren Datei hauptprogramm zusammengesetzt, dafür wird der Linker vom compiler driver g++ aufgerufen.

2010-06-14 00:12 - Chlorel in Beitrag No. 2 schreibt:

2.6: Welche Vorteile ergeben sich, wenn das Modul nur als Objekt vorliegt? (1P)
Danke für die Definition! Hat mir sehr geholfen.

Ganz klar die Vererbung (Wiederverwendung von Methoden etc. und dadurch Einsparung der Zeit). Ein Objekt von dem geerbt wird ist in aller Regel schon im Einsatz gewesen. So ist es durchschnittlich "fehlerfreier". Mensch spart Zeit bei der Programmierung und auch bei der evtl. Erweiterung des Moduls.

Hier verwechselst Du die Objektdatei (also das Ergebnis des Übersetzungsvorgangs) mit dem Objektbegriff aus der objektorientierten Programmierung. Dieser ist hier nicht gemeint, Deine Erklärungen dazu sind aber richtig.

2010-06-14 00:12 - Chlorel in Beitrag No. 2 schreibt:
Nachteilig für den Anbieter könnte sein, dass er geistiges Eigentum preisgibt und so evtl. einen Einblick in die Lösung komplexer Aufgaben ermöglicht. Dies könnte sich (betriebswirtschaftlich) nachteilig für den Anbieter auswirken.
Nachteilig für den Anwender könnte sein, dass er die evtl. eigenen Konventionen im Unternehmen so nicht einhalten kann. Möchte er oder eine andere Person des Unternehmens dieses Modul jetzt erweitern, könnte es zu Problemen kommen.

Ein weiterer Nachteil gerade im Hinblick auf ein Sicherheitsmodul wäre, dass sich mit einer Veröffentlichung der Sicherheitsroutinen evtl. auch Schwachstellen für Angreifer klar hervortun.

Hier ist mir nicht ganz klar, welche beiden Fälle Du hier vergleichst. Ich bin stillschweigend davon ausgegangen, dass das Sicherheitsmodul entweder als Quellcode oder als Objektcode zur Verfügung gestellt wird. Im ersten Fall ist das Risiko für den Anbieter, dass sein geistiges Eigentum in unerwünschter Weise verwendet wird, grösser als im zweiten.

Ich hoffe, das hilft Dir,
Roland



  Profil  Quote  Link auf diesen Beitrag Link
fejety
Senior Letzter Besuch: vor mehr als 3 Monaten
Dabei seit: 13.02.2007
Mitteilungen: 786
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.4, eingetragen 2010-06-15


Hallo,

übrigens brauchen bool und int im Normalfall gleich viel Speicherplatz (4 Byte bei 32Bit-Systemen, 8 Byte bei 64Bit-Systemen). Das liegt daran, dass der Prozessor nicht direkt einzelne Bits auslesen kann, und das Auslesen in größeren Einheiten daher Geschwindigkeitsvorteile bietet.

Gruß, fejety



  Profil  Quote  Link auf diesen Beitrag Link
Chlorel
Ehemals Aktiv Letzter Besuch: vor mehr als 3 Monaten
Dabei seit: 13.09.2002
Mitteilungen: 99
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.5, vom Themenstarter, eingetragen 2010-06-16


Hallo Roland.

2010-06-15 11:29 - rlk in Beitrag No. 3 schreibt:
Ich finde, dass diese Fragen sich auf praktische Probleme beziehen. Im Vergleich zu oft sehr vagen Begriffen wie "Modularität", "Kopplung" usw. wie sie im Software Engineering verwendet werden, sind diese Fragen ja noch angenehm konkret.

Also ich muss sagen, dass ich gar keinen großen Bezug dazu habe. Für mich sind diese Begriffe oft einfach ohne wirklichen Inhalt. Liegt vielleicht auch gerade an den 35 A4 Seiten die ich für dieses Fach auswendig lernen muss. Eine wirkliche Beschäftigung mit der theoretischen Seite kommt da so gut wie nicht in Frage (Zeitdruck). Die praktische Seite finde ich wiederum sehr interessant.


Du musst keine Datei implementieren, um den Typ string verwenden zu können. Meinst Du vielleich inkludieren?

Exakt. Das ist wieder eine Begrifflichkeit für die ich keinen direkten Unterschied gesehen habe. :)


Zum Glück kann man solche Dinge ja nachsehen: laut dieser Seite ist bool ein in C++ vordefinierter Typ, es muss nichts inkludiert (und schon gar nicht implementiert) werden.
Deine Begründung ist richtig, der erste und der dritte Vorteil unterscheiden sich aber kaum voneinander.

Ich sehe oft den Wald vor lauter Bäumen nicht. Habe hier 3 verschiedene "Informatik für Ingenieure" Bücher rumzuliegen.


Hier ist mir nicht ganz klar, welche beiden Fälle Du hier vergleichst. Ich bin stillschweigend davon ausgegangen, dass das Sicherheitsmodul entweder als Quellcode oder als Objektcode zur Verfügung gestellt wird. Im ersten Fall ist das Risiko für den Anbieter, dass sein geistiges Eigentum in unerwünschter Weise verwendet wird, grösser als im zweiten.

Ich hätte in beiden Fällen jetzt keinen großen Unterschied gesehen. Oft fehlt eben das Verständnis für die feinen Unterschiede zwischen den Definitionen.

Danke nocheinmal. Du hast mir sehr geholfen - vor allem auch beim Verständnis und bei der Übersetzung der Informatiksprache.

@fejety:
Danke. Das wusste ich nicht.

Also nocheinmal vielen Dank für die schnelle und kompetente Hilfe.

Liebe Grüße
"Chlorel"



  Profil  Quote  Link auf diesen Beitrag Link
Folgende Antworten hat der Fragesteller vermutlich noch nicht gesehen.
Er/sie war noch nicht wieder auf dem Matheplaneten
kostja
Senior Letzter Besuch: vor mehr als 3 Monaten
Dabei seit: 29.12.2004
Mitteilungen: 5432
Aus: Stuttgart
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.6, eingetragen 2019-08-24


Hallo zusammen,

ich denke ein großer Vorteil eine Objekt-Bibliothek zu bekommen, wurde noch nicht genannt. Der Konsument muss die Bibliothek nicht selbst kompilieren. Das ist in der Praxis in der Regel nicht trivial. Linken ist schon hart genug.

Für die Übergabeparameter würde ich char const* verwenden. Wenn C++ im interface ok ist, dann std::string_view.

Für den Rückgabewert ist bool unter Umständen nicht ok. Das kann in Zukunft nicht erweitert werden um Fehlercodes anzuzeigen. Ich würde ein enum deklarieren für den Rückgabe wert.

Statt inverse include-guards würde ich “pragma once“ empfehlen.

Der Name der Implementierungsdatei ist völlig irrelevant. Den Header würde ich in einen include Unterordner parallel zum Quellcode legen. Mögliche Endung ist auch .hpp.

Man sollte sich auch Gedanken machen ob Makros vorbereiten möchte um die Symbole zu exportieren, sollte man eine dll oder shared-object Bibliothek anbieten wollen in Zukunft.

Grüße

Konstantin



  Profil  Quote  Link auf diesen Beitrag Link
Neues Thema [Neues Thema] Antworten [Antworten]    Druckversion [Druckversion]

 


Wechsel in ein anderes Forum:
 Suchen    
 
All logos and trademarks in this site are property of their respective owner. The comments are property of their posters, all the rest © 2001-2019 by Matroids Matheplanet
This web site was made with PHP-Nuke, a web portal system written in PHP. PHP-Nuke is Free Software released under the GNU/GPL license.
Ich distanziere mich von rechtswidrigen oder anstößigen Inhalten, die sich trotz aufmerksamer Prüfung hinter hier verwendeten Links verbergen mögen.
Lesen Sie die Nutzungsbedingungen, die Distanzierung, die Datenschutzerklärung und das Impressum.
[Seitenanfang]