Bu OP için "user1949346" yanıtı hakkındaki yorum (ları )mı belirtmek için bunu bir hatırlatma olarak yanıtlıyorum.
Pek çok kişi zaten cevap verdi: her iki şekilde de iyi. Ardından kendi izlenimlerini vurgular.
Giriş, daha önce belirtilen adlandırılan yorumlarda olduğu gibi, bence C++
başlık uzantıları .h
aslında buna karşı bir neden yoksa önerilmektedir .
ISO / IEC belgeleri başlık dosyalarının bu gösterimini kullandığından .hpp
ve dil belgelerindeC++
.
Ama şimdi neden her iki durumda da uygun olduğunu ve özellikle neden kendi diline tabi olmadığını onaylamak için bir amaç hedefliyorum.
İşte başlıyoruz.
C++
Dokümantasyon (Aslında sürümü N3690 gelen referans alıyorum) bir başlık aşağıdaki sözdizimine uyması sahip olduğunu tanımlar:
2.9 Başlık adları
header-name:
< h-char-sequence >
" q-char-sequence "
h-char-sequence:
h-char
h-char-sequence h-char
h-char:
any member of the source character set except new-line and >
q-char-sequence:
q-char
q-char-sequence q-char
q-char:
any member of the source character set except new-line and "
Bu nedenle, bu bölümden ayıklayabileceğimiz gibi, başlık dosya adı da kaynak kodunda geçerli olan herhangi bir şey olabilir. '\n'
Karakter içermesi dışında ve dahil edilip <>
edilmeyeceğine bağlı olarak a içermesine izin verilmez >
. Ya da ""
-include tarafından dahil edilmişse , a içermesine izin verilmez "
.
Başka bir deyişle: dosya adlarını destekleyen bir ortamınız varsa prettyStupidIdea.>
, aşağıdakileri ekleyin:
#include "prettyStupidIdea.>"
geçerli olur, ancak:
#include <prettyStupidIdea.>>
geçersiz olur. Tam tersi.
Ve hatta
#include <<.<>
geçerli bir eklenebilir başlık dosya adı olur.
Bu bile uygun olsa bile C++
, oldukça aptalca bir fikir olurdu, tho.
İşte bu yüzden .hpp
de geçerlidir.
Ancak bu, dil için kararlar veren komitelerin bir sonucu değildir!
Kullanımına dair tartışırken Yani .hpp
yaklaşık yapıyor aynıdır .cc
, .mm
ya da hiç başka ne bu konuda diğer mesajlar okundu.
İtiraf etmeliyim ki 1'den.hpp
gelen hiçbir fikrim yok , ama bazı içsel süreçleri optimize etmek veya sadece bazılarını icat etmek için bu fikre gelen bazı ayrıştırma aracı, IDE veya başka bir şeyin mucidine bahse girerim. ) yeni adlandırma kuralları.C++
Ama dilin bir parçası değil.
Ve kişi bu şekilde kullanmaya karar verdiğinde. O iş akışının bazı uygulamalar bunu gerektirir çünkü ya, asla en sevdiği olmasından kaynaklanabilir 2 dilinin bir gerekliliktir. Yani "pp, C ++ ile kullanıldığı için" diyen herkes, dil tanımı açısından yanlıştır.
C ++, önceki paragrafa saygılı herhangi bir şeye izin verir. Komitenin kullanmasını önerdiği bir şey varsa .h
, ISO belgesinin tüm örneklerinde belirtilen uzantı olduğu için kullanıyor .
Sonuç:
.h
Aşırı .hpp
veya tam tersini kullanma ihtiyacı görmediğiniz / hissetmediğiniz sürece , rahatsız etmemelisiniz. Çünkü her ikisi de standarda göre aynı kalitede geçerli bir başlık adı oluşturur. Ve bu nedenle her şey GEREKTİRİR Kullanmak .h
ya .hpp
da diğer ek kısıtlamalara aykırı olabilir standardın ek bir kısıtlama değildir birbirleriyle uyumludur. Ancak OP herhangi bir ek dil kısıtlamasından bahsetmediğinden, bu sorunun tek doğru ve onaylanabilir cevabıdır
" Sınıf tanımlarınız için * .h veya * .hpp ":
Hiçbir dış sınırlama olmadığı sürece her ikisi de eşit derecede doğrudur ve uygulanabilir.
1 Bildiğim kadarıyla, görünüşe göre, bu .hpp
uzantı ile ortaya çıkan destek çerçevesi .
2 Tabii ki gelecekteki bazı sürümlerin beraberinde ne getireceğini söyleyemem!