ฉันกำลังตอบคำถามนี้เป็นเครื่องเตือนความจำเพื่อให้ความเห็นเกี่ยวกับ "ผู้ใช้ 1949346" ให้คำตอบสำหรับ OP เดียวกันนี้
ดังนั้นหลายคนตอบแล้ว: วิธีใดก็แล้วแต่ ตามมาด้วยการเน้นความประทับใจของตัวเอง
เกริ่นนำเช่นเดียวกับในความคิดเห็นที่มีชื่อก่อนหน้านี้ระบุไว้ความคิดเห็นของฉันคือC++
ส่วนขยายส่วนหัวที่เสนอให้เป็น.h
ถ้าไม่มีเหตุผลใดที่ขัดแย้งกับมัน
เนื่องจากเอกสาร ISO / IEC ใช้สัญลักษณ์ของไฟล์ส่วนหัวนี้และไม่มีการจับคู่สตริงที่จะ.hpp
เกิดขึ้นในเอกสารเกี่ยวกับภาษาของพวกเขาC++
แม้เกิดขึ้นในเอกสารภาษาของพวกเขาเกี่ยวกับ
แต่ตอนนี้ฉันตั้งเป้าหมายด้วยเหตุผลที่ยอมรับได้ทำไมทั้งสองวิธีก็โอเคและโดยเฉพาะอย่างยิ่งทำไมมันไม่ได้อยู่ในภาษาที่ตัวเองทำ
ดังนั้นเราไปกันเลย
C++
เอกสาร (ฉันจริงการอ้างอิงจากรุ่น N3690) ที่กำหนดว่าส่วนหัวมีเพื่อให้สอดคล้องกับไวยากรณ์ต่อไปนี้:
2.9 ชื่อส่วนหัว
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 "
ดังนั้นในขณะที่เราสามารถแยกออกจากส่วนนี้ชื่อไฟล์ส่วนหัวอาจเป็นอะไรก็ได้ที่ถูกต้องในซอร์สโค้ดเช่นกัน ยกเว้นที่มี'\n'
ตัวอักษรและขึ้นอยู่กับว่ามันเป็นเรื่องที่จะถูกรวมโดยไม่ได้รับอนุญาตให้มี<>
>
หรือวิธีการอื่น ๆ ถ้ามันจะรวมอยู่โดย""
-include "
มันจะไม่ได้รับอนุญาตให้มี
ในคำอื่น ๆ : หากคุณมีสภาพแวดล้อมที่สนับสนุนชื่อไฟล์เช่นprettyStupidIdea.>
รวม:
#include "prettyStupidIdea.>"
จะถูกต้อง แต่:
#include <prettyStupidIdea.>>
จะไม่ถูกต้อง วิธีอื่น ๆ รอบเดียวกัน
และแม้กระทั่ง
#include <<.<>
จะเป็นชื่อไฟล์ส่วนหัวที่ถูกต้องที่รวมได้
แม้สิ่งนี้จะสอดคล้องกับC++
มันก็เป็นความคิดที่โง่เง่ามากทีเดียว
และนั่นเป็นเหตุผลที่.hpp
ถูกต้องเช่นกัน
แต่มันไม่ใช่ผลลัพธ์ของคณะกรรมการที่ออกแบบการตัดสินใจสำหรับภาษา!
ดังนั้นการพูดคุยเกี่ยวกับการใช้งาน.hpp
ก็เหมือนกับการทำเรื่อง.cc
นั้น.mm
หรืออะไรที่ฉันเคยอ่านในกระทู้อื่น ๆ ในหัวข้อนี้
ฉันต้องยอมรับว่าฉันไม่มีเงื่อนงำที่.hpp
มาจาก1แต่ฉันจะพนันนักประดิษฐ์เครื่องมือแยกวิเคราะห์ IDE หรืออย่างอื่นที่เกี่ยวข้องกับC++
แนวคิดนี้เพื่อปรับกระบวนการภายในบางอย่างหรือเพื่อคิดค้นบางอย่าง (อาจจำเป็นสำหรับพวกเขา ) แบบแผนการตั้งชื่อใหม่
แต่มันไม่ได้เป็นส่วนหนึ่งของภาษา
และเมื่อใดก็ตามที่เราตัดสินใจที่จะใช้วิธีนี้ อาจเป็นเพราะเขาชอบมากที่สุดหรือเนื่องจากบางแอปพลิเคชันของเวิร์กโฟลว์ต้องการมันก็ไม่เคย2เป็นข้อกำหนดของภาษา ดังนั้นใครก็ตามที่บอกว่า "pp เป็นเพราะมันถูกใช้กับ C ++" ก็เป็นเรื่องผิดเกี่ยวกับการกำหนดภาษา
C ++ อนุญาตให้ทุกสิ่งที่เกี่ยวข้องกับย่อหน้าก่อนหน้า และหากมีสิ่งใดที่คณะกรรมการเสนอให้ใช้มันก็จะถูกใช้.h
เพราะนี่คือส่วนขยายฟ้องในตัวอย่างทั้งหมดของเอกสาร ISO
สรุป:
ตราบใดที่คุณไม่เห็น / รู้สึกว่าจำเป็นต้องใช้.h
เกิน.hpp
หรือคีมจับในทางกลับกันคุณไม่ควรกังวล เพราะทั้งคู่จะเป็นชื่อส่วนหัวที่ถูกต้องซึ่งมีคุณภาพเดียวกันตามมาตรฐาน ดังนั้นสิ่งใดก็ตามที่ต้องการให้คุณใช้.h
หรือ.hpp
เป็นข้อ จำกัด เพิ่มเติมของมาตรฐานซึ่งอาจขัดแย้งกับข้อ จำกัด เพิ่มเติมอื่น ๆ ที่ไม่สอดคล้องกัน แต่เนื่องจาก OP ไม่ได้กล่าวถึงข้อ จำกัด ด้านภาษาเพิ่มเติมนี่เป็นคำตอบเดียวที่ถูกต้องและได้รับการอนุมัติสำหรับคำถาม
" * .h หรือ * .hpp สำหรับนิยามคลาสของคุณ " คือ:
ทั้งสองอย่างนั้นถูกต้องและสามารถใช้ได้ตราบใดที่ไม่มีข้อ จำกัด ภายนอก
1 จากสิ่งที่ฉันรู้ชัดว่าเป็นกรอบการทำงานที่เพิ่มขึ้นมาพร้อมกับ.hpp
ส่วนขยายนั้น
2 แน่นอนฉันไม่สามารถบอกได้ว่าจะมีเวอร์ชั่นต่อ ๆ ไปในอนาคต!