dynamische klassen /statische klassen

Dieses Thema im Forum "C/C++" wurde erstellt von opino, 27.10.2006.

  1. opino

    opino Tripel-As

    Dabei seit:
    27.10.2006
    Beiträge:
    179
    Zustimmungen:
    0
    Code:
    // stellt cout bereit
    # include <iostream.h>
    class Haus
    {
     public: double Gf;
    		   double Hk;
    			int At;
    
     public: Haus ()
    			{
    		 	cout << "klasse Haus mit standartwerten erzeugt \n";
    		  	Gf=100;
             Hk=100;
    			At=5;
    			}
    					  
    		 Haus (double g, double h, int t)
    		  {
    			 cout << "klasse Haus mit eingabewerten erzeugt \n";
    			Gf=g;
    			 Hk=h;
    			 At=t;
    			}
    };
    	void show(Haus H)
    	{
    	cout <<  H.Gf << "\n";
    	}
    
    int  main() 
    {
    		  
    		  Haus H2();
    		  show( H2); //zeile 34 
    		  
    		  Haus * H1 = new Haus(1,1,1);
    		  show( *H1);
    
    return 0;
    }
    
    
    
    ich erhalte folgende Fehlermeldung :

    zwei.cpp: In function `int main()':
    zwei.cpp:34: error: conversion from `Haus (*)()' to non-scalar type `Haus'
    requested

    So wie ich das verstanden habe ist will show als eingabewert ein objekt vom typ haus.
    Das gebe ich ihm, aber wieso will es das nicht?
     
  2. Anzeige

    Schau dir mal diese Kategorie an. Dort findest du bestimmt etwas.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  3. #2 theton, 28.10.2006
    Zuletzt bearbeitet: 28.10.2006
    theton

    theton Bitmuncher

    Dabei seit:
    27.05.2004
    Beiträge:
    4.820
    Zustimmungen:
    0
    Ort:
    Berlin, Germany
  4. rikola

    rikola Foren Gott

    Dabei seit:
    23.08.2005
    Beiträge:
    2.133
    Zustimmungen:
    0
    Da hat Theton wohl nicht sorgfaeltig gelesen, und was Du sagst, opino, ist schon verstaendlich.

    Durch die leeren Klammern glaubt der Compiler, Du wuerdest in Z. 33 eine Funktion mit rueckgabetyp Haus deklarieren, d.h., dem ersten 'show' uebergibst Du einen Funktionszeiger. Wenn Du den default-Konstruktor aufrufen willst, dann lass die leeren Klammern ganz weg: Haus H1;

    Du solltest Dir aber vielleicht ein neueres Leerbuch zulegen - iostream.h heisst schon seit laengerem iostream, wie eigentlich alle c++-spezifischen Header das '.h' verloren haben.
     
  5. #4 polka, 28.10.2006
    Zuletzt bearbeitet: 28.10.2006
    polka

    polka Mitglied

    Dabei seit:
    16.07.2006
    Beiträge:
    33
    Zustimmungen:
    0
    lol du nimmst mir dir worte aus dem mund
    ahaha theton
    aber du hast auch net recht rikola.
    Er hat nen Konstruktor Haus(void) in seiner Klasse :-)
    Das Problem liegt bei Show. Du kannst doch keine class übergeben. Wie soll das Interpretiert werden ??? Soll der Stack mit der ganzen Klasse gefüllt werden ?
    Wenn schon sendest du ne Referenz aufs Haus oder ein Pointer, na kennst du den Unterschied Theton ?
    Definier Show so:
    void show(Haus& H) {.... }
    und dann kannst du
    show(H2); schreiben.

    bitte
     
  6. #5 Mµ*e^13.5_?¿, 28.10.2006
    Mµ*e^13.5_?¿

    Mµ*e^13.5_?¿ Routinier

    Dabei seit:
    21.02.2006
    Beiträge:
    453
    Zustimmungen:
    0
    @polka
    Nein, was soll das denn?

    Haus H2;
    show(H2);

    funktioniert so perfekt, was sollte man da ändern?
    Und C++ ist Objektorientiert, da kann ich übergeben, was ich will, also auch Objekte (was ja letztendlich auch Referenzen auf komplexe Datenstrukturen sind).
     
  7. Anzeige

    Vielleicht findest du HIER Antworten.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  8. theton

    theton Bitmuncher

    Dabei seit:
    27.05.2004
    Beiträge:
    4.820
    Zustimmungen:
    0
    Ort:
    Berlin, Germany
    Was soll das denn jetzt? Hab ich behauptet, dass ich unfehlbar bin?
    Wenn du weiter so machst, wirst du der erste hier im Board, der auf meiner Ignore-Liste landet.
     
  9. #7 polka, 28.10.2006
    Zuletzt bearbeitet: 28.10.2006
    polka

    polka Mitglied

    Dabei seit:
    16.07.2006
    Beiträge:
    33
    Zustimmungen:
    0
    Ach du hast mich vorhin so verärgert war ne weile sauer :-)
    Eigentlich bin ich ein lieber Mensch.

    Stimmt es sendet einfach alle Daten zur Funktion. Mein Fehler, hab das echt vergessen. Ist wie ne Union.
     
Thema:

dynamische klassen /statische klassen

Die Seite wird geladen...

dynamische klassen /statische klassen - Ähnliche Themen

  1. dynamische Speicherreservierung

    dynamische Speicherreservierung: [gelöst] dynamische Speicherreservierung Hallo, Unixboardler! Ich hab ein kleines Projekt am laufen und muss dafür wissen, wie ich zur...
  2. lokaler Mailserver mit "richtigen" TopLevel Domains machbar (Dynamische IP)

    lokaler Mailserver mit "richtigen" TopLevel Domains machbar (Dynamische IP): Hallo, ich plane meinen Vserver zu kündigen (nutze ihn zu wenig) und die Dienste hier lokal in der DMZ laufen zu lassen. WWW bzw. MySQL kein...
  3. Fedora Core9: Dynamische DNS-Updates über DHCP einrichten

    Fedora Core9: Dynamische DNS-Updates über DHCP einrichten: hi leutz, ich möchte unter Fedora Core 9 dynamische DNS-Updates über DHCP mittels einem Key DHCP_UPDATER einrichten. Den Key habe ich mittels...
  4. Bind mit dynamischem DNS unter Fedora Core 9

    Bind mit dynamischem DNS unter Fedora Core 9: Hi leutz, möchte unter Fedora Core 9 bind 9.5.0 mit dynamischem dns laufen lassen. Wenn in der /etc/named.conf die Option allow-query {...
  5. RAID 5 / Dynamische RAID-Lösung gefunden !!

    RAID 5 / Dynamische RAID-Lösung gefunden !!: Hallo, ich hatte bereits in einem anderen Thread in diesem Forum "Laufwerke / Speichermedien" nach einer Lösung für ein dynamisches RAID gefragt....