[C++] Property met class reference type

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

  • Olaf van der Spek
  • Registratie: September 2000
  • Niet online
Is het mogelijk in C++ een 'property' te maken die zich gedraagd als class reference? Class pointer lukt wel (met operator->), maar class reference wil niet lukken.

Wikipedia: Property (programming)

Acties:
  • 0 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 17-09 14:05

.oisyn

Moderator Devschuur®

Demotivational Speaker

Nope, de . operator is niet overridebaar. En een voorstel om die wel overridebaar te maken is afgeschoten.

[ Voor 2% gewijzigd door .oisyn op 15-10-2009 14:35 . Reden: oeps verkeerde artikel ]

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


Acties:
  • 0 Henk 'm!

  • Olaf van der Spek
  • Registratie: September 2000
  • Niet online
En dat zeg je pas nadat ik hem gelezen heb? ;)
Dat de . operator niet overridable is, is nog wel logisch. Voor property emulatie is het echter vervelend. Properties komen er (voorlopig) ook niet in, toch? :(

Acties:
  • 0 Henk 'm!

  • MSalters
  • Registratie: Juni 2001
  • Laatst online: 13-09 00:05
Ik zou het niet zo hard zeggen. Wat je wil is een manier om te zorgen dat de expressie "X.prop = Y()" een custom SET method aanroept, terwijl "Y y = X.prop" een custom GET aanroept. Het enige wat je daarvoor nodig hebt is een X::prop definieren als een property<Y>.

property<Y>::property() is dan je SETter; property<Y>::operator Y is je GETter.

Man hopes. Genius creates. Ralph Waldo Emerson
Never worry about theory as long as the machinery does what it's supposed to do. R. A. Heinlein


Acties:
  • 0 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 17-09 14:05

.oisyn

Moderator Devschuur®

Demotivational Speaker

Ik ging er vanuit dat zijn probleem was dat X.prop.c_str() niet kan als X.prop gedefinieerd is als property<std::string>

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


Acties:
  • 0 Henk 'm!

  • Olaf van der Spek
  • Registratie: September 2000
  • Niet online
Inderdaad... Het keyword is class reference. Een ander probleem met het gebrek aan echte properties is dat een property zonder backing store (dus een functionele property) niet te doen is.

[ Voor 58% gewijzigd door Olaf van der Spek op 16-10-2009 13:57 ]

Pagina: 1