Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Neues Problem-OOP

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 < [ 2 ]
000
02.08.2005, 22:10 Uhr
~Silence
Gast


Kennt sich jemand mit OOP aus und kann mir vielleicht sagen, warum dieses kleine Programm nicht läuft? Hab lauter Fehlermeldungen


C++:
#include<iostream>
using namespace std;

class int_klasse
   {
       private:
           int a, b;
       public:
          
           int_klasse(){a=b=0;}
           int_klasse(int i; int j;){a=i; b=j;}
           int add(){return a+b;}
           int sub(){return a-b;}
           void print(){cout<<"a: "<<a<<"\tb: "<<b<<endl;}
           set (int i; int j;){a=i; b=j;}
   }
  
main()
{
    int_klasse x; int_klasse y(10, 20)
    x.print(); y.print();
    cout<< int add()<<endl;
    cout<< int sub()<<endl;
    cout<< x.set(11, 23);
    x.print();
}    



Denn folgendes, ähnliches Programm läuft problemlos:

C++:
#include <iostream>
using namespace std;


class beispiel
  {
      int a;
      
      public:
          int b;
          beispiel() {a=0;}
          beispiel(int i) {a=i*i;}
          void set(int i) {a=i*i;} //hier ist void bei einigen Compilern erforderlich, da du Funktionen in Klassendefinitionen die keinen Rückgabewert haben ich mit void kennzeichnen muss
          void print() {cout <<"a: " <<a <<"\tb: " <<b <<endl;} //hier das Gleiche
   };
  
main()
{
    beispiel x(25);
    beispiel y;
    x.print();
    x.b=20; //y.a=10; nicht korekt -> private
    x.print(); y.print(); x.set(10); x.print();
    
    system("PAUSE"); //Dem Benutzer Zeit geben das Ergebnis anzuschauen
}

 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
02.08.2005, 22:30 Uhr
~Silence
Gast


Hab nochmal am Programm gebastelt. Der letzte Stand des Programms sieht jetzt so aus:


C++:
#include<iostream>
using namespace std;

class int_klasse
   {
       private:
           int a, b;
       public:
          
           int_klasse(){a=b=0;}
           int_klasse(int i, int j){a=i; b=j;}
           int add(){return a+b;}
           int sub(){return a-b;}
           void print(){cout<<"a: "<<a<<"\tb: "<<b<<endl;}
           void set (int i, int j){a=i; b=j;}
   }
  
main()
{
    int_klasse x; int_klasse y(10, 20);
    x.print(); y.print();
    cout<< x.add()<<endl;
    cout<< x.sub()<<endl;
    x.set(11, 23);
    x.print();
}    



Fehlermeldungen
Zeile 19 C++ forbids defining types within return type
Zeile 19 `main' must return `int' (ich schreibe nie int vor main, es muß auch ohne gehen)
Zeile 19 semicolon missing after declaration of `class int_klasse' (ich würde sagen eher ohne Semikolon, denn mein problem oben laufendes Programm ist ja schließlich auch ohne Semikolon)

Hoffe ihr wisst Rat
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
02.08.2005, 22:41 Uhr
Pablo
Supertux
(Operator)



Zitat von ~Silence:
Zeile 19 `main' must return `int' (ich schreibe nie int vor main, es muß auch ohne gehen)


wa in Wirklichkeit ein Fehler ist. Siehe main - Aufzucht und Pflege
--
A! Elbereth Gilthoniel!
silivren penna míriel
o menel aglar elenath,
Gilthoniel, A! Elbereth!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
02.08.2005, 22:43 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


schreib das int vor die main, dann gehts auch, so ist main schliesslich auch definiert, also immer schön


C++:
int main(void)
{
}



bzw wenigstens


C++:
int main()
{
}



schreiben. das return am Ende kannste weglassen, da wird dann return 0 angenommen (das geht sogar bei VC 6.0 glaub ich)

ansonsten MUSST du ein ; nach einer Klassedeklaration machen:


C++:
class XYZ
{
  // ...
};



Das Semikolon ist PFLICHT!
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
02.08.2005, 22:52 Uhr
~Silence
Gast


Es lag am Semikolon Danke FloSoft

und

ich schreibe nie etwas vor main und alle meine Programme laufen.

Info am Rande: Ich bin Maschinenbauer im 2.Semester
Da schreiben wir nichts vor main, weil wir das nicht so intensiv wie die Informatiker machen

Das Programm geht jetzt Danke
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
02.08.2005, 22:54 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


ich denke mal das ihr C-Programme schreibt, da sollte es erlaubt sein, nur C++ wie der Compiler dir ja schon so schön mitgeteilt hat erlaubt sowas eben nur bei Kon- und Destruktoren
--
class God : public ChuckNorris { };

Dieser Post wurde am 02.08.2005 um 22:55 Uhr von FloSoft editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
03.08.2005, 13:21 Uhr
Pablo
Supertux
(Operator)



Zitat von ~Silence:
Info am Rande: Ich bin Maschinenbauer im 2.Semester
Da schreiben wir nichts vor main, weil wir das nicht so intensiv wie die Informatiker machen




Ist trotzdem ein Fehler, und es kann schon bizarre Fälle geben, bei denen das zum Absturz bringt. Lies mal leiber main - Aufzucht und Pflege genau durch statt dich bei einem Fehler so wie ein Löwe zu wehren. Und benutze das int main.
--
A! Elbereth Gilthoniel!
silivren penna míriel
o menel aglar elenath,
Gilthoniel, A! Elbereth!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
03.08.2005, 16:50 Uhr
typecast
aka loddab
(Operator)



Zitat von ~Silence:

ich schreibe nie etwas vor main und alle meine Programme laufen.

Info am Rande: Ich bin Maschinenbauer im 2.Semester
Da schreiben wir nichts vor main, weil wir das nicht so intensiv wie die Informatiker machen






Ich fahre immer bei rot ueber die Ampel, und hab noch nie einen Unfall gehabt.

Info am Rande: Ich bin Fahranfaenger im zweiten Jahr.
Da halten wir uns halt nicht so intensiv an die Verkehrsregeln wie das die LKW-Fahrer machen.
--
All parts should go together without forcing. ... By all means, do not use a hammer. (IBM maintenance manual, 1925)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
03.08.2005, 22:24 Uhr
~Silence
Gast


Blöder Witzbold (ich mußte aber selbst auch darüber lachen)

ich schreib alles nur main und nichts davor, na ja, bei dem bissel was ich an Programmierung mach interessiert das nicht.
Trotzdem Danke für eure Hilfe

Hat mir geholfen
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
009
04.08.2005, 01:22 Uhr
Pablo
Supertux
(Operator)


Der Vergleich ist super. Genau so kannst du es dir vorstellen, wobei es bei dir noch dummer ist, weil wir dir schon 100 mal sagen und du tust es trotzdem nicht, obwohl es nichts kostet. Aber es sind deine programme, wenn sie deswehen abstürzen bist du alleine der schuldige.
--
A! Elbereth Gilthoniel!
silivren penna míriel
o menel aglar elenath,
Gilthoniel, A! Elbereth!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 < [ 2 ]     [ C / C++ (ANSI-Standard) ]  


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: