Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Empfohlene Antworten

Veröffentlicht

Hallo und entschuldigt bitte, dass ich für wahrscheinlich ein dummes Problem einen neuen Thread erstelle.

Ich fange nächsten Montag eine schulische Umschulung zum FIAE an und soll mich sozusagen als Hausaufgabe mit dem Buch "Einstieg in Visual C++ 2008" von Andre Willms darauf vorbereiten, bin also noch ein blutiger Anfänger und mir fehlt derzeit noch ein Ansprechpartner.

Aufgabe: Ich soll eine Funktion schreiben, die von drei eingegebenen Zahlen das Maximum ausgibt, was ansich nicht das Problem ist. Der Fokus liegt bei der Aufgabe darauf, wie man die Deklaration der F. und die Funktionen in unterschiedliche Dateien auslagert.

Ich kriege nun einen nicht nachvollziehbaren Fehler, der sehr ärgerlich ist, weil ich ohne den zu lösen auch die Folgeaufgaben nicht machen kann. Warum Fehlt vor using (bzw. nach der include-Direktive?) ein Semikolon???

Edit: und warum in der Headerdatei eine geschweifte Klammer? :-)

post-92945-1443044976509_thumb.png

Bearbeitet von Bioernus

  • Autor

ok, aber die headerdatei ist doch im prinzip nur der funktionskopf der funktion.

und der sieht so aus: int bjoern1 (int, int, int)

da kommen doch keinerlei geschweifte klammern oder ein Semikolon, oder?

die Funktion sieht dann so aus:

int bjoern1(int x, int y, int z)

{

if(x>y && x>z)

return (x);

else

{

if(y>z)

return (y);

else

return (z);

}

}

ist doch eigentlich auch alles dran, was ran muß?

Edit: du hast recht, in der headerdatei ein semikolon, sry. sagt das buch auch. wer lesen kann usw.

dankeschön :-))

Bearbeitet von Bioernus

  • Autor

ist jetzt kompilierbar, s.o.

headerdatei: int bjoern1 (int, int, int) -> jetzt mit semikolon hinter der klammer kompilierbar, und das mit der geschweiften klammer tritt einfach garnicht mehr auf...

wär ich von alleine nicht drauf gekommen, 1000 Dank ^^

  • 2 Monate später...

Um das ganze vielleicht noch etwas für die blutigen Anfänger zu verdeutlichen - die Präprozessordirektive "Include"

macht nichts weiteres als den Inhalt der inkludierten Datei zu kopieren und ihn anschließen einfügen.

Beispiel:


//Datei: Test.h

#pragma once // Compilerabhängig, ansonsten #ifndef, #define und #endif verwenden


inline int Addiere(int nZahl1, int nZahl2){

    return nZahl1 + nZahl2; 

}


//Datei: Main.cpp

#include "Test.h"  //Code, welcher sich in der Datei 'Test.h' befindet, wird nun durch den 

                         //Präprozessor hier eingefügt. 

//inline int Addiere(int nZahl1, int nZahl2){

//    return nZahl1 + nZahl2; 

//}


int main(int argc, char** argv)

{

      int nRes = Addiere(1,1);

      //........

}

Ansonsten hast du noch die Möglichkeit, deine Funktionen in einer Header- Datei zu deklarieren und diese in einer externen .cpp Datei zu definieren. Beispiel:

#pragma once


inline void Addiere(int nZahl1, int nZahl2);  // <- Deklaration

^ Funktion.h

#include "Funktion.h"


inline void Addiere(int nZahl1, int nZahl2){   // <- Definition

     return nZahl1 + nZahl2;

}

^ Funktion.cpp

#include "Funktion.h"


... main(...)

{

   int nRes = Addiere(6,4);

// Code

}

^ Main.cpp Was du unter Umständen umbedingt meiden solltest, ist das benutzten von using namespace xxx. Führt häufig zu Komplikationen, sofern du eigene Funktionen, welche den gleichen Bezeichner haben wie bereits existente Funktionen im xxx- Namensraum, verwendest. In Einzelfällen kannst du folgendes Benutzen:

using namespace std::cout;

using namespace std::cin;

In Einzelfällen kannst du folgendes Benutzen:


using namespace std::cout;
using namespace std::cin;
[/code] Das funktioniert so nicht. Eine Using-Direktive (using namespace ...) erlaubt den Zugriff auf den gesamten Inhalt eines Namespace ohne Angabe des Namespace. Eine Using-Deklaration (using ...) tut das mit einzelnen Namen im Namespace. Also:
[code]using std::cout;
using std::cin;

Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.