Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (WinAPI, Konsole) » Konstruktor und Destruktor

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
20.05.2014, 21:32 Uhr
Chunya



Guten Tag,

Ich habe die Konstruktor so geschrieben, um eine Funktion TakeAndGetPict() in dem Konstruktor aufzurufen.

in .h Datei

C++:
// Standardkonstruktur
private:
    KameraApp();

public:
   // Konstruktur
    KameraApp( int n_Pic, double bleZeit, double bildRate, bool getPhoto);



in .cpp Datei

C++:

KameraApp::KameraApp( int n_Pic, double bleZeit, double bildRate, bool getPhoto)
{
   if(n_Pic == 1)  
    {
      TakeAndGetPict(aPhoto, bleZeit );
    }
    else
       {
        .........
       }
}


int main (int argc, char* argv[])
{
   // hier gibt es irgendwie Fehle, da ich habe die warning bei Kompilierung bekommen,
   // warning C4800: 'char *': Variable wird auf booleschen Wert ('True' oder 'False') gesetzt
   KameraApp KApp((int)argv[1], atof(argv[2]), atof(argv[3]), (bool)argv[4]);
}



Könnte Jemand mir helfen? Wie es richtig geschrieben werden soll? In dieserm Fall brauche ich kein Destruktur, oder?

Viele Grüße,
Chunya

Dieser Post wurde am 22.05.2014 um 13:30 Uhr von FloSoft editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
22.05.2014, 13:30 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


naja

Erstens solltest du prüfen, ob er überhaupt 4 Argumente an dein Programm übergeben hat (argc)

Dann solltest du deine Werte auch korrekt übertragen.
Bei deinen double Parametern machst du das ja auch bereits korrekt (atof)
Für deinen int Parameter solltest du dann "atoi" benutzen, "(int)argv[1]" castet nur den Pointer nach int.

Für den bool Parameter gibt es mehrere Möglichkeiten:

1. Wenn dein User "ja/nein/true/false/on/off/1/0" eingeben dürfen soll, musst du diesen Text auch auswerten. (komplexer)
2. Wenn dein User nur "1/0" eingeben dürfen soll, kannst du "atoi(argv[4]) != 0" verwenden. (einfachste möglichkeit)

Insgesamt solltest du natürlich sicherstellen, das die Werte in den Parametern auch korrekt/gültig sind.


Ansonsten:

Wenn du C++ schreibst, solltest du Abstand von atof/atoi nehmen, sondern deine (String)-Paramter per stringstream in die passenden anderen konvertieren. Dort kannst du dann auch eine sinnvolle Gültigkeitsprüfung machen.
--
class God : public ChuckNorris { };

Dieser Post wurde am 22.05.2014 um 13:31 Uhr von FloSoft editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (WinAPI, Konsole) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: