SORU
1 Mayıs 2011, Pazar


"ad" kullanarak; c başlıkları

Tüm c kurslarımız, tüm öğretmenler her zaman sağ .h dosyalarında #includes *sonra 1* koy. Bu bence çok tehlikeli biri o zamandan beri de dahil olmak üzere, bu başlığı başka bir program alacağım ad ithal içine programım, belki farkında olmadan, isteyen veya isteyen (başlık dahil olabilir çok fazla iç içe geçmiş).

Yani benim soru iki: using namespace başlık dosyaları ve yoksa bir şekilde onu geri almak için, bir şey gibi: kullanılmamalıdır, öyle değil mi

//header.h
using namespace std {
.
.
.
}

Bir soru daha birlikte aynı çizgiler: Gereken başlık dosyası #include tüm başlıkları buna karşılık gelen .cpp dosyası gerekiyor, yalnızca gerekli olan başlık tanımları ve izin .cpp dosya #include Diğerleri veya hiçbiri düşünüp her şeyi duyduğunda extern?
Yukarıdaki soruyla aynıdır arkasındaki mantık: .h dosyalar için bir sürpriz istemiyorum.

Eğer haklıysam da, bu yaygın bir hatadır? Gerçek dünya programlama ve "gerçek" orada projeler.

Teşekkür ederim.

CEVAP
1 Mayıs 2011, Pazar


Kesinlikle beklenmedik bir şekilde bu başlık içeren herhangi bir diğer dosyaları kodun anlamını değiştirebilir söylüyorsun kesin nedeni için başlıkları using namespace kullanmamalısınız. Bu kadar tehlikeli başka bir nedeni olan, using namespace geri almanın yolu yok. Ben genellikle sadece grep using namespace daha karmaşık bir şey denemek yerine başlıklarını seslendi olmadığından emin olmak için kullanın. Muhtemelen statik kod bu çok bayrak Dama.

Başlık derlemek için gerekli sadece başlıklarını içermelidir. Bu zorlamak için kolay bir yol her zaman başka başlıkları önce ilk şey olarak, her kaynak dosya kendi Başlığı vardır. Daha sonra kaynak dosya başlığın kendine yeten değil mi eğer derlemek başarısız olur. Sınıfları bir kütüphane içinde örnek uygulama-detay için başvuran bazı durumlarda, ileriye ilan gibi bir sınıf tanımı üzerinde tam kontrole sahip çünkü ileri #include yerine bildirimleri kullanabilirsiniz.

Ortak derdim emin değilim, ama kesinlikle arada bir, genellikle olumsuz sonuçlarının farkında değildir yeni programcılar tarafından yazılan gösterir. Sadece riskleri ile ilgili küçük bir eğitim nispeten basit bir düzeltme olduğu için herhangi bir sorun ilgileniyor genellikle.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • HereWeStayKings

    HereWeStayKi

    3 NİSAN 2013
  • PaulGBelliveau

    PaulGBellive

    5 Mart 2009
  • sk8ingis4me

    sk8ingis4me

    16 Mart 2006