Anda mungkin tahu itu tetapi saya hanya akan melakukan hal berikut:
class Person {
public:
std::string name() {
return _name;
}
void name(std::string value) {
_name = value;
}
private:
std::string _name;
};
Pendekatan ini sederhana, tidak menggunakan trik cerdas dan menyelesaikan pekerjaan!
Masalahnya adalah bahwa beberapa orang tidak suka memberi awalan bidang pribadi mereka dengan garis bawah sehingga mereka tidak dapat benar-benar menggunakan pendekatan ini, tetapi untungnya bagi mereka yang melakukannya, ini sangat mudah. :)
Dapatkan dan setel prefiks tidak menambah kejelasan pada API Anda tetapi membuatnya lebih bertele-tele dan alasan saya rasa mereka tidak menambahkan informasi yang berguna adalah karena ketika seseorang perlu menggunakan API jika API masuk akal, dia mungkin akan menyadari apa itu tidak tanpa awalan.
Satu hal lagi, mudah untuk memahami bahwa ini adalah properti karena name
bukan kata kerja.
Skenario terburuk, jika API konsisten dan orang tersebut tidak menyadari bahwa itu name()
adalah aksesor dan name(value)
mutator maka dia hanya perlu mencarinya sekali dalam dokumentasi untuk memahami polanya.
Sebanyak saya suka C # Saya rasa C ++ tidak membutuhkan properti sama sekali!