Windows Azure Cloud Storage ermöglicht es Ihnen bereits ab 0,10€ pro GB/Monat die Vorteile der Cloud zu nutzen.
Hypercell ein ] Hypercell aus ] Zeige Navigation ] Verstecke Navigation ]
c++.de  
   
Advanced Developers Conference     
Bücher-Shop mit Amazon (Buchkategorien)C++ : Referenzen zu C++ : C++ Builder : Visual C++ : C# : Java : Spieleprogrammierung : Systemprogrammierung Linux : Software-Entwicklung : .NET : Compilertechnik : Algorithmen & Datenstrukturen : Objektorientierung : Entwurfsmuster : UML : eXtreme Programming : Scrum : Projektmanagement : Software-Testing : Datenbanken : Tom DeMarco : Dilbert : User Friendly
C/C++ Forum :: VCL (C++ Builder) ::  Read only Eigenschaften von Klassen  
Gehen Sie zu Seite Zurück  1, 2
  Zeige alle Beiträge auf einer Seite
Auf Beitrag antworten
Autor Nachricht
akari
Moderator

Benutzerprofil
Anmeldungsdatum: 27.11.2004
Beiträge: 11253
Beitrag akari Moderator 12:47:24 27.08.2010   Titel:              Zitieren

Hallo

Dieser Quellcode
C/C++ Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
1
2
3
4
5
6
7
8
9
10
11
12
13
class TMyClass
{
  public:
    String GetMyString() {return MyString;}; // Getter-Methode
//    void SetMyString(UnicodeString x) {MyString = x;}; // Setter-Methode, hier nicht verfügbar

  private :
    String MyString;
};
...
  TMyClass *MyClass = new TMyClass();

//  MyClass->MyString = "Hallo Welt"; // geht natürlich nicht
  String x = MyClass->GetMyString();
C/C++ Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
class TMyClass
{
public:
String GetMyString() {return MyString;}; // Getter-Methode
// void SetMyString(UnicodeString x) {MyString = x;}; // Setter-Methode, hier nicht verfügbar

private :
String MyString;
};
...
TMyClass *MyClass = new TMyClass();

// MyClass->MyString = "Hallo Welt"; // geht natürlich nicht
String x = MyClass->GetMyString();
C/C++ Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
class TMyClass
{
  public:
    String GetMyString() {return MyString;}; // Getter-Methode
//    void SetMyString(UnicodeString x) {MyString = x;}; // Setter-Methode, hier nicht verfügbar

  private :
    String MyString;
};
...
  TMyClass *MyClass = new TMyClass();

//  MyClass->MyString = "Hallo Welt"; // geht natürlich nicht
  String x = MyClass->GetMyString();

kompiliert ohne weitere Änderung auf meinem BCB5 ohne Fehler. Du hast etwas bei der Übernahme des Quellcodes falsch gemacht.

bis bald
akari

_________________
In der nächsten Version wird alles besser!


Zuletzt bearbeitet von akari am 12:49:11 27.08.2010, insgesamt 1-mal bearbeitet
Heimelchen
Mitglied

Benutzerprofil
Anmeldungsdatum: 22.06.2010
Beiträge: 325
Beitrag Heimelchen Mitglied 08:45:39 31.08.2010   Titel:              Zitieren

akari schrieb:
C/C++ Code:
String x = MyClass->GetMyString();
C/C++ Code:
String x = MyClass->GetMyString();
C/C++ Code:
String x = MyClass->GetMyString();

Ne, du hast bei der Übernahme was falsch gemacht.

Gewollt ist:
C/C++ Code:
String x = MyClass->MyString();
C/C++ Code:
String x = MyClass->MyString();
C/C++ Code:
String x = MyClass->MyString();
akari
Moderator

Benutzerprofil
Anmeldungsdatum: 27.11.2004
Beiträge: 11253
Beitrag akari Moderator 08:48:27 31.08.2010   Titel:              Zitieren

Hallo

:confused: Du kannst deine Methode nennen wie du willst. Nur die Methode und die Membervariable dürfen nicht gleich heißen. In meinem Beispiel ist GetMyString() also völlig korrekt.

bis bald
akari

_________________
In der nächsten Version wird alles besser!


Zuletzt bearbeitet von akari am 08:48:51 31.08.2010, insgesamt 1-mal bearbeitet
Heimelchen
Mitglied

Benutzerprofil
Anmeldungsdatum: 22.06.2010
Beiträge: 325
Beitrag Heimelchen Mitglied 09:12:23 02.09.2010   Titel:              Zitieren

Aber wenn ich auf TComponent::Components zugreifen will, verwende ich ja auch TComponent::Components und nicht TComponent::GetComponents(). Ein signifikanter Unterschied läge darin, dass hinter dem einen Klammern stehen, hinter dem andern nicht. Abgesehen vom Namen natürlich...

PS: Bei mir hat sich auch nen Fehler eingeschlichen: gewollt ist:
C/C++ Code:
String txt = MyClass->MyString;
C/C++ Code:
String txt = MyClass->MyString;
C/C++ Code:
String txt = MyClass->MyString;


Zuletzt bearbeitet von Heimelchen am 09:14:07 02.09.2010, insgesamt 1-mal bearbeitet
akari
Moderator

Benutzerprofil
Anmeldungsdatum: 27.11.2004
Beiträge: 11253
Beitrag akari Moderator 09:16:34 02.09.2010   Titel:              Zitieren

Hallo

:confused: Ich sehe immer noch nicht dein Problem. TComponent hat eben eine property die Components heißt und vom Typ Array ist. Möglich das es intern auch direkt lesend auf ein Array namens iComponents zugreift. Aber nichts davon widerspricht meinem Beispiel.

bis bald
akari

_________________
In der nächsten Version wird alles besser!
Th69
Mitglied

Benutzerprofil
Anmeldungsdatum: 25.03.2008
Beiträge: 2111
Beitrag Th69 Mitglied 10:30:28 02.09.2010   Titel:              Zitieren

Hallo heimelchen,

akari hat dir hier http://www.c-plusplus.de/forum/viewtopic-var-p-is-1944764.html#1944764
doch schon die Lösung mittels Eigenschaften (Properties) genannt (Beispiel "VCL")...
Heimelchen
Mitglied

Benutzerprofil
Anmeldungsdatum: 22.06.2010
Beiträge: 325
Beitrag Heimelchen Mitglied 12:07:52 02.09.2010   Titel:              Zitieren

Heimelchen schrieb:
Ich hab nun auch festgestellt, dass die Standard-C++ Syntax unter CodeGear nicht funktioniert.

Ich hab auch nicht behauptet, dass es mit __property nicht funktioniert...
akari
Moderator

Benutzerprofil
Anmeldungsdatum: 27.11.2004
Beiträge: 11253
Beitrag akari Moderator 12:57:03 02.09.2010   Titel:              Zitieren

Hallo

:confused: Und welche Frage ist denn nun noch offen?

/Edit : Natürlich funktioniert meine konkrete C++ Version auch nur bei VCL-Einbindung, da ich den Datentyp UnicodeString verwendet habe. Wenn du UnicodeString durch std::string ersetzt brauchst du keine VCL mehr. Aber das sollte doch wohl klar sein?

bis bald
akari

_________________
In der nächsten Version wird alles besser!


Zuletzt bearbeitet von akari am 13:25:25 02.09.2010, insgesamt 1-mal bearbeitet
Heimelchen
Mitglied

Benutzerprofil
Anmeldungsdatum: 22.06.2010
Beiträge: 325
Beitrag Heimelchen Mitglied 13:38:09 02.09.2010   Titel:              Zitieren

Alles beantwortet.
C/C++ Forum :: VCL (C++ Builder) ::  Read only Eigenschaften von Klassen  
Gehen Sie zu Seite Zurück  1, 2
Auf Beitrag antworten

Zeige alle Beiträge auf einer Seite




Nächstes Thema anzeigen
Vorheriges Thema anzeigen
Sie können Beiträge in dieses Forum schreiben.
Sie können auf Beiträge in diesem Forum antworten.
Sie können Ihre Beiträge in diesem Forum nicht bearbeiten.
Sie können Ihre Beiträge in diesem Forum nicht löschen.
Sie können an Umfragen in diesem Forum nicht mitmachen.

Powered by phpBB © 2001, 2002 phpBB Group :: FI Theme

c++.de ist Teilnehmer des Partnerprogramms von Amazon Europe S.à.r.l. und Partner des Werbeprogramms, das zur Bereitstellung eines Mediums für Websites konzipiert wurde, mittels dessen durch die Platzierung von Werbeanzeigen und Links zu amazon.de Werbekostenerstattung verdient werden kann.

Die Vervielfältigung der auf den Seiten www.c-plusplus.de, www.c-plusplus.info, www.c-sar.de, www.c-plusplus.net und www.baeckmann.de enthaltenen Informationen ohne eine schriftliche Genehmigung des Seitenbetreibers ist untersagt (vgl. §4 Urheberrechtsgesetz). Die Nutzung und Änderung der vorgestellten Strukturen und Verfahren in privaten und kommerziellen Softwareanwendungen ist ausdrücklich erlaubt, soweit keine Rechte Dritter verletzt werden. Der Seitenbetreiber übernimmt keine Gewähr für die Funktion einzelner Beiträge oder Programmfragmente, insbesondere übernimmt er keine Haftung für eventuelle aus dem Gebrauch entstehenden Folgeschäden.