Muhtemelen bunu biliyorsunuzdur ama ben sadece şunu yapardım:
class Person {
public:
std::string name() {
return _name;
}
void name(std::string value) {
_name = value;
}
private:
std::string _name;
};
Bu yaklaşım basittir, akıllıca numaralar kullanmaz ve işi halleder!
Sorun şu ki, bazı insanlar özel alanlarının önüne bir alt çizgi koymaktan hoşlanmıyorlar ve bu yüzden bu yaklaşımı gerçekten kullanamıyorlar, ancak neyse ki bunu yapanlar için bu gerçekten basit. :)
Get ve set önekleri API'nize netlik katmaz, ancak onları daha ayrıntılı hale getirir ve yararlı bilgiler eklediklerini düşünmememin nedeni, API'nin mantıklı olması durumunda birisinin bir API kullanması gerektiğinde muhtemelen bunun farkına varmasıdır. önekler olmadan yapar.
Bir şey daha, bunların özellikler olduğunu kavramak kolay çünkü name
bir fiil değildir.
En kötü durum senaryosu, API'ler tutarlıysa ve kişi bunun name()
bir erişimci olduğunu anlamadıysa vename(value)
bir mutatör olduğunu anlamadıysa, modeli anlamak için dokümantasyonda yalnızca bir kez bakması gerekecektir.
Ne kadar C # sevsem de C ++ 'nın özelliklere ihtiyacı olduğunu düşünmüyorum!