SORU
9 Mart 2015, PAZARTESİ


Neden &; Başlatma" " std::ios_base::Init büyük?

Standart C kütüphanesindeki bütün isimleri std::ios_base::Init hariç küçük harf. Neden bu?

CEVAP
9 Mart 2015, PAZARTESİ


Bir erken draft İOStream sınıfları o ios_base oldu aslında yok, basic_ios temel sınıf ve sorumluydu Init ve diğer üyeleri olan idi, ama daha sonra ayrılmış ios_base.

basic_ios da vardı (still has) init fonksiyon ise iki isim vermedi mutlaka olması ayrı, muhtemelen denemek ve önlemek karışıklık için karar verildi Adı Sınıf Init ve işlevi init. Ayrıca, bu ayrımı yapılmaksızın aşağıdaki gibi bir sınıfı kullanırken gerekli olurdu:

struct ios_base
{
  struct init{};
  void init();
};

ios_base::init i1;        // error
struct ios_base::init i2; // ok

Ayrı bir sınıf standart akışı başlatılıyor sorumlu olması fikri en azından this başlık Iostream_init tarafından görüldüğü gibi 3.0, CFront gider. Bir noktada Init adlandırılması gereken sınıf 12*/ basic_ios / ios_base *üye yapmak için değil sadece ama karar verildi.

Her durumda mantıklı olan iki belirsizliği ortadan kaldırmak için, hatta sonuçta ayrı sınıflara yerleştirilir oldukları gerçeğini dikkate alarak yapar. Onlar mı karar tamamen ayrı isimler yerine, ama tahminen Init / init olarak kabul edildi en iyi semantik seçim için ne tarif sınıfı ve işlev, ve orada da bir şanstı sadece taklit eden eski Iostream_init hangi bir nedeni de başlar ile bir büyük harf I.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Break

    Break

    10 Aralık 2005
  • Snazzy Labs

    Snazzy Labs

    9 Aralık 2008
  • WoodysGamertag

    WoodysGamert

    17 Aralık 2009