Erken C ++ uygulamalarının ad alanına erişim için nokta operatörüne sahip olduğu söyleniyor . Noktanın, modern çift kolonlu operatörden daha uygun olduğuna dair bir görüş var.
Çift kolonun kullanılmasının ardındaki neden neydi?
Erken C ++ uygulamalarının ad alanına erişim için nokta operatörüne sahip olduğu söyleniyor . Noktanın, modern çift kolonlu operatörden daha uygun olduğuna dair bir görüş var.
Çift kolonun kullanılmasının ardındaki neden neydi?
Yanıtlar:
Jules tarafından gözlemlendiği gibi , erken C ++ uygulamalarının (CFront pre-1.0) kapsam tanımlaması için bir noktaya sahip olduğu bir gerçektir.
Sınıflarla birlikte C de (1980) bir nokta kullanıldı . Gerçekten de bu, Sınıflar'dan basit bir snippettir : C Dili 1 için Soyut Bir Veri Türü Tesisi :
class stack {
char s[SIZE]; /* array of characters */
char * min; /* pointer to bottom of stack */
char * top; /* pointer to top of stack */
char * max; /* pointer to top of allocated space */
void new(); /* initialization function (constructor) */
public:
void push(char);
char pop();
};
char stack.pop()
{
if (top <= min) error("stack underflow");
return *(−−top);
}
(kod, üye işlevlerinin tipik olarak "başka yerlerde" nasıl tanımlandığının bir örneğiydi)
::
Eklemeler biri sınıfları ile C üretmek C ++ kişiye.
Nedeni Stroustrup'un kendisi tarafından verilir:
Sınıflarla C'de, bir sınıfın üyeliğini ifade etmek ve belirli bir nesnenin bir üyesinin seçimini ifade etmek için bir nokta kullanılmıştır.
Bu bazı küçük karışıklıkların sebebiydi ve belirsiz örnekler oluşturmak için de kullanılabilir. Bunu hafifletmek
::
için, sınıfın ortalama üyeliği için tanıtıldı ve.
sadece nesnenin üyeliği için tutuldu
( C ++ Tarihçesi: 1979-1991 [2] sayfa 21 - § 3.3.1)
Bjarne Stroustrup: "Sınıflar: C Dili için Soyut Bir Veri Türü Tesisi" - Bell Laboratuvarları Bilgisayar Bilimi Teknik Raporu CSTR − 84. Nisan 1980.
Bjarne Stroustrup: "C ++ Tarihçesi: 1979−1991" - AT&T Bell Laboratuvarları Murray Hill, New Jersey 07974.
::symbol
arama yapmaya zorlamanızı sağlarsymbol
, bu yüzden çok kafa karıştırıcı görünecek ve muhtemelen dile daha sözdizimsel belirsizliği getiren en az bir şey yerine nokta operatörü kullanıldı.