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
Som Troels er inde på benytter BorlandC++ Builderen metoden i stor stil.
Måske fordi det er en arv fra Delphi, og det er vist den samme der har lavet Delphi og C#, så derfor har begge sprog denne feature.

Men jeg tror at de fleste C++ programmører vil kalde det dårlig kodestil.



Okay.

Jeg tror så bare jeg fortsætter med funktionerne lidt endnu, indtil jeg ved lidt mere om vektorer, templates og så videre.

Mange tak begge to.



Properties er ikke en del af C++ standarden. Man kan dog i ATL lave properties, men dette er et lag som ligger ovenpå C++ og er derfor heller ikke en del af C++ standarden.

class MyClass
{
void setX(const X * x);
const X* getX() const;
};

Ved brug af properties som i C# (C-havelåge) opnåes der designmæssigt *ikke* et rent snit mellem get() og set() metoderne og det derfor være svært at styre samtidig adgang samme "property" i en flertrådet applikation.

Hth




Kan du ikke give et komplet eksempel på brug af det? Bare et simpelt konsol-eksempel, så jeg kan danne mig et overblik.




Forkortelsen ATL som står for Active Template Library er en samling af klasser og templates som bruges når man laver COM servere og COM objekter. For at bruge ATL skal du derfor oprette et COM projekt. Ved denne oprettelse af COM objekterne (altså disses klasser) bliver der tiføjet en masse klasser som denne nedarver fra bl.a. i forbindelse med hvilken trådmodel m.m. den skal køre samt et IDL interface, det er derfor ikke lige til at lave et komplet eksempel som kan sættes ind her.

Men jeg har lavet et COM objekt, der krypterer data med RC4, som kan findes på codeproject, hvor i kan se koden til det, så kan i se hvordan koden der ser ud.

http://www.codeproject.com/cpp/RC4CPP_DK.asp


For at holde koden i rent C++ (uden brug af ATL) ville jeg nok hellere gøre som jeg har vist i min tidligere post. Det vil sige på denne måde.

class MyClass
{
void setX(const X * x);
const X* getX() const;
};

Hth



<< < 123 > >>
t