SORU
13 ŞUBAT 2011, Pazar


Ne zaman C sınıfı üyeleri başvurmak için nokta, ok, ya da bir çift kolon kullanırım ?

Gelen diğer C türevi dillere (Java veya C#) C , ilk başta çok kafa karıştırıcı bir C üç yol başvurmak için üye sınıfı: a::b, a.b, a->b. Bu operatörlerinden biri olan kullanabilirim?

(Not: Bu Stack Overflow's C FAQ için bir giriş olarak tasarlanmıştır. Eğer bu formda bir SSS sağlama fikri tenkit etmek istiyorsanız, o zaman the posting on meta that started all this bunu yapmak için bir yer olurdu. Cevaplar soru izlenen C chatroom nereye SSS fikir başladı ilk başta, bu da senin cevabın çok muhtemel alın okuyun o kim buldu bu fikri.)

CEVAP
13 ŞUBAT 2011, Pazar


Üç farklı operatörler C kullanır erişimi üyelerinin bir sınıf veya sınıf nesnesi, yani çift kolon :: nokta . ve ok -> kullanılan üç farklı senaryolar, her zaman iyi tanımlanmış. Bilerek bu sağlar size hemen biliyorum çok şey hakkında a b sadece bakarak a::b, a.b a->b, sırasıyla, herhangi bir kod bakın.

  1. a::b b sınıfının bir üyesi ise sadece kullanılan bir ad) a. O, bu durumda a Her zaman bir sınıf adını (veya ad) olacak.

  2. a.b b nesne (ya da bir nesneye referans) üyesi ise sadece kullanılır a. Yani a.b, a Her zaman gerçek bir nesne olacak (veya bir nesne için bir başvuru) bir sınıf.

  3. a->b aslen (*a).b steno gösterim. Ancak, -> tek üye erişim operatörleri aşırı yüklenmiş olabilir, eğer öyleyse a bir nesne bir sınıf aşırı yükleme operator-> (sık bu tür akıllı işaretçiler ve kullanımına, anlamı her ne olursa olsun, sınıf tasarımcısı uygulanmaktadır. Sonuç: eğer a bir gösterici nesnesinin bir üyesi olacak ise a->b işaretçi a ifade eder. Ancak, a Bu operatör aşırı yükleme, bir sınıfın bir nesnesi, sonra da aşırı yüklenmiş operatör fonksiyonu varsa operator->() çağrılan alır.


Küçük baskı:

  • C , çeşitleri class, struct union olarak ilan etti< . em ^"sınıf tipi". Yukarıdaki üçü ifade eder.
  • Başvurular, anlamsal olarak, diğer ad nesneleri, yani eklememeliydim< . em ^"ya da bir işaretçi başvuru"#3 de. Ancak, işaretçiler, başvurular (T*&) nadiren kullanılan bu yana bu yararlı daha fazla kafa karıştırıcı olur diye düşündüm.
  • Nokta ve ok operatörlerinin nesnenin üyeleri olmadığı halde bir nesne statik sınıf üyeleri başvurmak için kullanılır. (Bu işaret için Oli için teşekkürler!)

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • How to Cook ?

    How to Cook

    31 Ocak 2007
  • LiteralMSPaint

    LiteralMSPai

    27 EKİM 2010
  • PlugResearch

    PlugResearch

    22 Mart 2006