C/belirleyiciler kodlama stilini alıcılar
C programlama yapıyorum# bir süre için ve C becerilerini tazelemek istiyorum.
Sınıfı:
class Foo
{
const std::string& name_;
...
};
Ne en iyi yaklaşım olacaktır (sadece adı _ alanını okuma erişimi izin vermek istiyor):
- alıcı bir yöntemi kullanın:
inline const std::string& name() const { return name_; } - bir sabit olduğu için alan ortak olun
Teşekkürler.
CEVAP
Alıcı bir yöntem kullanarak gelecekte daha karmaşık şeyler ile alıcı yöntemini değiştirmek için izin verir gibi uzun ömürlü bir sınıf için daha iyi bir tasarım seçimdir. Bu sabit değeri için gerekli olması ihtimali az gibi görünse de, maliyeti düşük ve olası yararları büyük.
Bir kenara, C , bir üyenin hem alıcı ve ayarlayıcı vermek için özellikle iyi bir fikirdiraynı adıberi gelecekte sonra aslında yöntemlerin çifti değiştirebilirsiniz:
class Foo {
public:
std::string const& name() const; // Getter
void name(std::string const& newName); // Setter
...
};
Her biri için operator()(): bir tanımlayan tek bir ortak üye değişkeni
// This class encapsulates a fancier type of name
class fancy_name {
public:
// Getter
std::string const& operator()() const {
return _compute_fancy_name(); // Does some internal work
}
// Setter
void operator()(std::string const& newName) {
_set_fancy_name(newName); // Does some internal work
}
...
};
class Foo {
public:
fancy_name name;
...
};
İstemci Kodu Dersin çekirdekler gerekir, ama hiçbir sözdizimi değişiklik gereklidir! Belli ki, bu dönüşüm de yalnızca bir alıcı gereklidir sabit değerler için çalışıyor.

Alıcılar, belirleyiciler ve özellikler...
Scala deyimsel kodlama stilini sadece ...
Python kodlama stilini alma...
Nasıl dosya Eclipse kodlama değiştirme...
kodlama " sıra;UTF8" geçersiz ...