īpašību simulācija iekš C++
Ķipa getSomething() funkcijas bieži izmanto read-only klases mainīgo nolasīšanai. Bet es tak varu darīt šādi:
class Boo
{
public:
Boo() : read_only_property(private_variable) { }
const int& read_only_property;
private:
int private_variable;
};
Bet ar šādu sintaksi es iegūstu pilnu property (kā, piemēram, C#) simulāciju. No ārpuses izskatīsies kā mainīgais, bet es iekšpusē varu ielikt izsaukuma apstrādi. Vienīgi ārpusē neuzrādīsies vērtības patiesais tips. Es gan varētu nosaukt viņu, piemēram, Tilpums_int...
class Pudele
{
public:
Tilpums tilpums;
class Tilpums
{
public:
int operator =(int value) { tilpums = value; }
operator int() { return tilpums; }
private:
int tilpums;
};
};
Komentāri? Cik jēdzīgas vai nejēdzīgas ir šīs tehnikas? Vai tām ir pielietojums? Vai ir vēl kāds iemesls tās nelietot bez tā, ka tās ir pilnīgi ārpus vispār pieņemtā kodēšanas stila?
Edit: izlaboju kļūdas.