Announcement

Collapse
No announcement yet.

funktion überschreiben und aufrufen

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • funktion überschreiben und aufrufen

    Hey,

    ich bin noch ziemlicher Anfänger was c++ angeht.
    Ich habe eine klasse class1, in dessen *.cpp datei eine Fkt. void test(void) vorhanden ist. In einer anderen Klasse class2 ist in der *.cpp datei dieselbe funktion void test(void) definiert ist. wie kann ich jetzt diese funktion innerhalb der *.cpp datei von class1 aufrufen? (Die funktion ist also überschrieben worden)

    Kann mir jemand helfen? Ist sicherlich einfach, aber ich komme nicht weiter.

  • #2
    Die funktion ist also überschrieben worden
    Das wäre nur der Fall wenn class1 von class2 ableitet und die dann als virtual deklarierten Funktionen zur jeweiligen Klasse gehören. Ist das hier der Fall? Wenn nicht sind das einfach 2 Methoden die zufällig gleich heißen. Kann man dann genauso behandeln als würden die nicht gleich heißen.

    Comment


    • #3
      *.cpp von der ersten Klasse:
      void class1::test(void)
      {
      //hier will ich nun aber die Fkt. der class2 aufrufen
      }

      class class2
      {
      public:
      class2(void);
      ~class2(void);

      protected:
      virtual void test(void);

      };

      Comment


      • #4
        Da du keine Vererbung hast (wer ist "test(void)"?), muss die erste Klasse irgendwoher die Referenz auf die zweite Klasse bekommen. D.h. die erste Klasse legt eine entsprechende Referenz an (new) oder bekommt diese übergeben...oder eben von class2 erben. Was ein weiteres Probelm mit sich bringt. Was willst du da aufrufen? Die Methode ist virtual. D.h. sie ist in den abgeleiteten Klassen zu implementieren
        Zuletzt editiert von Christian Marquardt; 03.01.2013, 10:34.
        Christian

        Comment


        • #5
          Hat sich alles aufgeklärt.danke

          Comment

          Working...
          X