WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Konstruktor und Vererbung

 

Twister
Forum-Newbie

Forum-Newbie


Beiträge: 6
Anmeldedatum: 01.11.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 13.10.2010, 10:34     Titel: Konstruktor und Vererbung
  Antworten mit Zitat      
Hallo!

Sitze gerade an einem Matlab-Programm was ich objektorientiert programmiere, was ich mit Matlab eigentlich nicht sooo gerne mache. Der Übersicht halber ists so aber einfacher. Jetzt hab ich folgendes Problem:

Ich habe eine Klasse und eine erbende Klasse. Die Klasse hat einen Konstruktor, der einen Parameter erwartet, die erbende Klasse soll nun einfach diesen Konstruktor übernehmen. Wie genau mache ich das?
Hier mal der Code aufs wichtigste gekürzt:

Code:

classdef A
    properties (SetAccess = private)
        variable
    end
   
    methods
        function obj=probe(variable)
            obj.variable=variable;
        end
    end
end
 


Code:

classdef B < A
    properties (SetAccess = private)
        % ein paar neue Variablen
    end
   
    methods
      %  function obj=B(variable)
       % end
    end
end
 


So, nochmal das Problem:

Lasse ich den Konstruktor in Klasse B einfach weg und rufe "x=B;" auf, so meldet er mir, dass "var" undefined ist. Also versucht er offensichtlich auch den Konstruktor der Klasse A auszuführen.
Rufe ich "x=B(var);" auf, so meldet er zu viele Eingabeparameter... logisch, da der Konstruktor von B keine Parameter erwartet.
Setze ich den Konstruktor für Klasse B wie oben im Code auskommentiert, so meldet er bei "x=B(var);" zwar nicht mehr zu viele Eingabeparameter, allerdings dafür wieder "var" undefined in der Klasse "A".

Wie kann ich ihm jetzt klar machen, dass er für den Konstruktor der Klasse "A" eben die Eingabeparamter des Konstruktors der Klasse "B" verwenden will?
Bzw. wie kann ich ein Objekt der Klasse B erzeugen und dabei den vererbten Konstruktor der Klasse A verwenden?
Private Nachricht senden Benutzer-Profile anzeigen


LittleX
Forum-Guru

Forum-Guru


Beiträge: 494
Anmeldedatum: 14.05.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 15.10.2010, 10:17     Titel:
  Antworten mit Zitat      
Hallo,

Du musst im Konstruktor Deiner subclass noch den Konstruktor der superclass aufrufen:
Code:

classdef B < A
    properties (SetAccess = private)
        % ein paar neue Variablen
    end
   
    methods
      function obj=B(variable)
           obj = obj@A(variable);
      end
    end
end
 


Viele Grüße,

LittleX
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum posten
Du kannst Dateien in diesem Forum herunterladen
.





 Impressum  | Nutzungsbedingungen  | Datenschutz | FAQ | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2024 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks

MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.