c++ Klassen-Methoden überschreiben

Gast #386753
Lesenswert?

Hallo Leute,

Ich beschäftige mich zur Zeit etwas mit c++ programmierung und habe
folgendes Problem.

Ich möchte eine C++ Klasse ableiten und eine Methode aus dieser
überschreiben. Die überschriebene Methode soll etwas Arbeit ausführen
und danach die Methode der Basisklasse aufrufen. Eigentlich eine ganz
simple Sache, aber meine C++ Kenntnisse sind total verschüttet.
Vielleicht könnt ihr mir helfen.

Das ist mein Testprogram. Mein Problem: Die Methode der abgeleiteten
Klasse ruft rekursiv immer sich selbst auf. Ich bekomme das nicht
richtig hin, bin jetzt schon 2 Stunden am frickeln.


#include "stdafx.h"
using namespace System;

// Basisklasse
ref class A
{
private:
  array<float>^ A_Data;
public:
  A(){};
  virtual void SetData(array<float>^ in)
  {
    Console::WriteLine("Basisklasse");
    A_Data = gcnew array<float>(in->Length );
    in->CopyTo(A_Data,0);
  }
};

// Abgeleitete Klasse
ref class A_Ext : A
{
public:
  virtual void SetData (array<float>^ in) override
  {
  // dieser Aufruf soll die Methode der Basisklasse aufrufen
  // ruft aber ständig sich selbst auf
    Console::WriteLine("Abgeleitete Klasse");
    SetData (in);
  }
};


int main(array<System::String ^> ^args)
{
    Console::WriteLine(L"Hello World");
    A_Ext^ a = gcnew A_Ext();
    array<float>^ f = gcnew array<float>(100);
    a->SetData (f);
    return 0;
}

Vielen Dank für eure Mühe !

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren