Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Bitte Hilfe.. Klassen

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
03.03.2006, 11:22 Uhr
Leopard



Hallo liebe Programmierer,
ich hab folgenden Code compiliert und bekomme folgende Fehlermeldung (im Code)


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

class cHaus {
      
      public: int var1;
      public: int func1() {cout<<"Hallo"<<endl; return 0;}
      cHaus (int x,float y,char z) {cout<<2*x<<endl;
                                    cout<<3*y<<endl;
                                    cout <<"Es funktioniert doch!"<<endl; }
      cHaus() {}
      //~cHaus();
      };

int main() {
    
    
    cHaus haus1;
    cHaus haus2;
    //haus1 = haus2;
    //void func2();
    void func2 (cHaus &haus1,cHaus *haus2){
    cout<<"holla"<<endl;
    cout<<"niee!!"<<endl;
    cout<<bhaus->var1;
}
/*Fehlermeldung: 22 C:\Dokumente ...a function-definition is not allowed here before '{' token
und ... Fehlermeldung2: 22 C:\Dokumente...expected `,' or `;' before '{' token*/

    //cout <<<<endl;
    //haus1.func1();
    //haus2.func1();
    //cout <<haus1.var1<<endl;
    //cout <<haus2.var1<<endl;
    
    cin.get();
    return 0; }


//void func2 (cHaus a, cHaus b)



gruß
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
03.03.2006, 11:26 Uhr
Spacelord
Hoffnungsloser Fall


func2 musst du ausserhalb von main definieren.
Funktionslokale Funktionsdefinitionen sind nicht zulässig .

MfG Spacelord
--
.....Ich mach jetzt nämlich mein Jodeldiplom.Dann hab ich endlich was Eigenes.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
03.03.2006, 11:32 Uhr
Leopard



hallo .. danke fuer deine schnelligkeit
hab schon gemacht ausserhalb aber wenn ich kompiliere, tut das programm nix...
der neue code

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

class cHaus {
      
      public: int var1;
      public: int func1() {cout<<"Hallo"<<endl; return 0;}
      cHaus (int x,float y,char z) {cout<<2*x<<endl;
                                    cout<<3*y<<endl;
                                    cout <<"Es funktioniert doch!"<<endl; }
      cHaus() {}
      //~cHaus();
      };

int main() {
    
    
    cHaus haus1;
    cHaus haus2;
    //cHaus::cHaus() {var1 = 8;}
    //haus1 = haus2;
    //void func2();
   void func2 (cHaus haus1,cHaus haus2);
    //cout <<<<endl;
    //haus1.func1();
    //haus2.func1();
    //cout <<haus1.var1<<endl;
    //cout <<haus2.var1<<endl;
    
    cin.get();
    return 0; }

void func2 (cHaus &haus1,cHaus *haus2){
    cout<<"holla"<<endl;
    cout<<"niee!!"<<endl;
    cout<<haus2->var1;}
gruß

 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
03.03.2006, 11:36 Uhr
Spacelord
Hoffnungsloser Fall


Hi,
die Deklaration:

C++:
  void func2 (cHaus haus1,cHaus haus2);


muss da auch raus und zwar vor die main sonst meckert der Compiler weil die Funktionsdefinition erst nach main stattfindet.
Du könntest auch gleich die Funktionsdefinition vor main setzen,dann ist das Deklaration und Definition in einem.

Innerhalb von main darf sich nix anderes befinden als nen Funktionsaufruf

C++:
func2(haus1,haus2);


MfG Spacelord
--
.....Ich mach jetzt nämlich mein Jodeldiplom.Dann hab ich endlich was Eigenes.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
03.03.2006, 12:00 Uhr
Leopard



danke... es funktioniert nun , aber wenn ich folgendes zu kompilieren versuche bekoome ich folgende fehlermeldung:


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

class cHaus {
      
      public: int var1;
      public: int func1() {cout<<"Hallo"<<endl; return 0;}
      cHaus (int x,float y,char z) {cout<<2*x<<endl;
                                    cout<<3*y<<endl;
                                    cout <<"Es funktioniert doch!"<<endl; }
      cHaus() {}
      //~cHaus();
      };
cHaus a, b;

void func2 (cHaus &a,cHaus *b){
      
    cout<<"holla"<<endl;
    cout<<"niee!!"<<endl;
    cout<<a.var1<<endl;
    cout<<b->var1;}
    
int main() {
    
    
    cHaus haus1;
    cHaus haus2;
    //cHaus::cHaus() {var1 = 8;}
    //haus1 = haus2;
    //void func2();
    func2 (&haus1,*haus2);
//Fehler: 31 C:\Dokumente und Einste... no match for 'operator*' in '*haus2'
    //cout <<<<endl;
    //haus1.func1();
    //haus2.func1();
    //cout <<haus1.var1<<endl;
    //cout <<haus2.var1<<endl;
    
    cin.get();
    return 0; }





was muss ich tun ? ich weiss, ich quaelle euch , aber meine Klausur ist am Montag!!!
gruß
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
03.03.2006, 12:01 Uhr
Tommix



Hallo,
wenn mich mein Gedächtnis nicht trügt, darf die Funktionsdeklaration durchaus in main erfolgen. Die Funktion ist dann halt nur lokal in main bekannt. Wie auch immer war hier wohl ein Aufruf geplant. Der muß allerdings

C++:
func2(haus1, &haus2);


lauten. Ebenso muß die Deklaration zur Definition passen:

C++:
void func2(cHaus&, cHaus*);



Gruß, Tommix


Bearbeitung:

War zwar als Antwort auf Spacelords Posting gedacht, sollte die letzte Frage aber auch beantworten.

Dieser Post wurde am 03.03.2006 um 12:03 Uhr von Tommix editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ 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: