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

Funktionsaufruf im "private"-Kontext

 

Nicolas S.
Forum-Century

Forum-Century


Beiträge: 146
Anmeldedatum: 15.07.09
Wohnort: ---
Version: R2014a/b
     Beitrag Verfasst am: 01.02.2010, 09:17     Titel: Funktionsaufruf im "private"-Kontext
  Antworten mit Zitat      
Hallo zusammen,

ich habe noch ein Problem mit Access-Restriktionen (hängt mit dem folgenden Thread zusammen:
http://www.gomatlab.de/viewtopic,p,37132.html#37132 )

Ich habe eine Klasse mit einer einer properties mit "Access = private" oder "Access = protected". Nun ist es mein innigstes Verlangen, eine Methode einer Überklasse darauf zugreifen zu lassen. In etwa so:
Code:

classdef classB < classA
% classA < handle
properties (Access = private)
   fingerweg
end
methods
  function out = fkt(in)
       out = classA.fkt(in);    % mgl1; classA.fkt ist statisch
       out = fkt@classA(in);  % mgl2;
  end
end
 

Dummerweise läuft die Methode von classA immer im Kontext von classA, nicht im Kontext von classB, so daß ich auf die Variable "fingerweg" nicht zugreifen kann. Gibt es eine Möglichkeit, die Methode einer Überklasse im Kontext der Unterklasse laufen zu lassen?

Viele Grüße
Nicolas
_________________

--
The programmer suggested it.
Private Nachricht senden Benutzer-Profile anzeigen


Titus
Forum-Meister

Forum-Meister


Beiträge: 871
Anmeldedatum: 19.07.07
Wohnort: Aachen
Version: ---
     Beitrag Verfasst am: 02.03.2010, 11:21     Titel:
  Antworten mit Zitat      
Hallo Nicolas,

hmm, gebe zu, dass ich noch nicht das Problem verstanden habe.
fingerweg ist eine Property von classB? Damit kennt classA sie natürlich nicht. Mehrere Auswege (je nach dem, wie es "passt"):
- fingerweg an fkt als Parameter übergeben
- fingerweg nach classA verschieben
- eine abstrakte Methode getFingerWeg in classA definieren, die in classB (und anderen abgeleiteten) implementiert wird

Ciao,
Titus
Private Nachricht senden Benutzer-Profile anzeigen
 
Nicolas S.
Themenstarter

Forum-Century

Forum-Century


Beiträge: 146
Anmeldedatum: 15.07.09
Wohnort: ---
Version: R2014a/b
     Beitrag Verfasst am: 02.03.2010, 18:26     Titel:
  Antworten mit Zitat      
Hallo Titus, hallo alle anderen,

Zweck der ganzen Geschichte ist es, eine Überklasse zu haben, die all ihren Unterklassen einen "copy"-Befehl zur Verfügung zu stellen, mit dem Ziel in "handle"-Klassen mit
Code:

 B = copy(A);
 

eine komplette Kopie des Inhaltes des Objekts A in Objekt B abzulegen. (Der Ansatz dazu ist ja in dem anderen Thread verlinkt.)

Dummerweise hat die Überklasse, die den "copy"-Befehl stellt, keinerlei Zugriff auf properties in Unterklassen, die "private" oder "protected" sind - und kann sie damit nicht kopieren (weder lesen- noch schreibenderweise). Damit müßte ich den "copy"-Befehl in jeder Klasse neu schreiben, was aus zwei Gründen isdiskutabel ist:
1. Der Befehl ist ewig lang
2. Der Befehl braucht persistente Variablen
Also ist mein Stand, daß ich Objekte aus "handle"-Klassen, bei denen properties entweder lese- oder schreibgeschützt sind mit meiner Methode nicht kopieren kann.

Mitlerweile habe ich es allerdings auch aufgegeben und habe einfach in allen Klassen, die dazu infrage kommen, kopiert zu werden, allen Lese- und Schreibschutz aufgehoben.

Viele Grüße
Nicolas
_________________

--
The programmer suggested it.
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.