Get/Set -- Read/Write i C++

Tags:    c++

<< < 123 > >>
Hej,

Har C++ noget lig C#'s Get/Set og Delphi's Read/Write?

Eksempel (C#):
Fold kodeboks ind/udKode 




25 svar postet i denne tråd vises herunder
1 indlæg har modtaget i alt 1 karma
Sorter efter stemmer Sorter efter dato
Hej,

Har C++ noget lig C#'s Get/Set og Delphi's Read/Write?

Eksempel (C#):
Fold kodeboks ind/udKode 


Du kunne prøve med et forsøg, men ja det mener jeg.



Jeg kender ikke C# eller Delphi, og er ikke sikker på hvad du mener med Get/Set, men jeg tror at svaret er nej.

I C++ kan man:

Fold kodeboks ind/udKode 




Hvis ikke man kan lide funktioner:

Fold kodeboks ind/udKode 


Men "cast operatorer" (operator string& ()) betragtes som dårlig stil.
Man skal være påpasselig med at lave for mange assignment operatorer.



Martin > Da min IDE hverken highlightede get, set, read eller write, gik jeg ud fra ingen af dem virkede.

Men jeg prøver lige at uddybe det.

Hvis man i C# har en streng, eksempelvis kaldet "Navn", kan man skrive:
Fold kodeboks ind/udKode 

Så vil get {} blive kaldet når man skriver:
Fold kodeboks ind/udKode 

Fordi den skal hente ("get") værdien af navn, og hvis man skriver:
Fold kodeboks ind/udKode 

... Går den ind og kalder set {}, og "value" bliver udskiftet med "Peter", som bliver lagt i variablen Navn. Et skidesmart system, som jeg håber også er at finde i C++.

Bertel > Jeg er glad nok for funktioner, men jeg kan umuligt se det praktiske i dem i denne situation, da de manuelt skal kaldes. Man kan nærmest sige, get {} og set {} er en slags event handler for en variabel (det ved jeg godt det ikke er.)



Indlæg senest redigeret d. 15.04.2007 20:17 af Bruger #8985
Kan du prøve at lave et komplet eksempel?

Men der findes ikke noget sådan i C++, her ville man vælge den lette løsning, at skrive og læse direkte til/fra variablen eller lave SetVar og GetVar funktioner.



Nu spørger jeg sikkert dumt - Vil du have eksemplet i C++ eller C#? For jeg kan jo dårligt lave det i C++ når jeg ikke ved om det kan lade sig gøre, så her kommer et i C#:
Fold kodeboks ind/udKode 

Følgende vil oprette et konsolvindue med teksten "Jeg hedder Thomas".



det du fisker efter kaldes så vidt jeg ved for Properties, Borland har i deres C++ builder lavet det med operator overloading. jeg googlede lige lidt:
http://www.codeproject.com/cpp/cppproperties.asp

mvh
Troels



Man kan også:
Fold kodeboks ind/udKode 


Jeg er ikke sikker på at man vinder noget videre ved det.



Det der kommer nærmest er nok MyStringClass fra eksemplet ovenfor, eller en template baseret løsning som den Troels linker til.



Måske kan du fortælle hvorfor det er smart?



<< < 123 > >>
t