การเขียน Refactoring Friendly C ++
ใน C ++ คุณไม่จำเป็นต้องใช้ส่วนหัวเลย คุณสามารถกำหนดวัตถุทั้งหมดในไฟล์เดียวกับ C # หรือ Java นักพัฒนา C โดยทั่วไปจะเก็บสายภายนอกในไฟล์ส่วนหัว การโทรภายในทั้งหมดจะถูกกำหนดไว้ในไฟล์. c ด้วยโทเค็นเดียวกันคุณสามารถจองไฟล์ C ++ .h ของคุณสำหรับคลาส / อินเทอร์เฟซ (คลาสนามธรรมเสมือนจริง) / ฯลฯ ที่มีวัตถุประสงค์เพื่อแบ่งปันนอก DLL สำหรับคลาส / structs / interfaces ภายใน ฯลฯ คุณเพียงแค่รวมไฟล์. cpp ที่คุณต้องการ:
#include<myclass.cpp>
สิ่งนี้ดูเหมือนจะไม่ใช่วิธีที่ได้รับความนิยมสูงสุด แต่เป็นวิธีทางกฎหมาย C ++ มันจะเป็นไปได้สำหรับรหัสภายในทั้งหมดของคุณ สิ่งนี้ทำให้โค้ดภายในและชุดของคลาสเปลี่ยนไปมากขึ้นในขณะที่ให้อินเทอร์เฟซที่มีเสถียรภาพมากขึ้นสำหรับโค้ดภายนอกไลบรารี่ / ปฏิบัติการของคุณเพื่อโต้ตอบกับ
การมีคลาสทั้งหมดของคุณไว้ในไฟล์เดียวจะทำให้การทำสิ่งที่คุณต้องการง่ายขึ้น มันจะไม่แก้ปัญหาในการเปลี่ยนชื่อเมธอดและต้องค้นหาทุกครั้งที่เรียกเมธอด แต่จะทำให้แน่ใจว่าคุณมีข้อความแสดงข้อผิดพลาดที่เข้าใจได้ง่ายขึ้น ไม่มีอะไรที่แย่ไปกว่าการมีส่วนหัวของคุณประกาศวิธีหนึ่ง แต่คุณใช้มันแตกต่างกัน รหัสอื่นที่เรียกไฟล์ส่วนหัวจะรวบรวมอย่างถูกต้องและคุณจะได้รับข้อยกเว้นการเชื่อมโยงในขณะที่ไฟล์การใช้งานจะเป็นคนที่บ่นว่าวิธีที่ไม่ได้กำหนด เมื่อคุณกำหนดทุกวิธีในสถานที่ (ในการประกาศคลาสจริง) คุณจะได้รับข้อความแสดงข้อผิดพลาดเดียวกันไม่ว่าจะมีไฟล์ใด
คุณอาจต้องการดูคำถามนี้: เครื่องมือการปรับโครงสร้างที่ดีสำหรับ C ++
C / C ++ แก้ไขไฟล์ส่วนหัว / การนำไปใช้งานได้อย่างไร
ที่ระดับ C พื้นฐาน (และ C ++ ถูกสร้างขึ้นบนรากฐานนั้น) ไฟล์ส่วนหัวจะประกาศสัญญาของฟังก์ชั่น / struct / ตัวแปรซึ่งเพียงพอที่จะอนุญาตให้คอมไพเลอร์สร้างไฟล์วัตถุ ไฟล์ส่วนหัว C ++ ในทำนองเดียวกันประกาศคำสัญญาของฟังก์ชั่น structs คลาส ฯลฯ มันเป็นคำจำกัดความที่คอมไพเลอร์ใช้ในการจองพื้นที่ในกองซ้อน ฯลฯ
ไฟล์. c หรือ. cpp มีการนำไปใช้ เนื่องจากคอมไพเลอร์แปลงไฟล์การนำไปใช้งานแต่ละไฟล์เป็นอ็อบเจ็กต์ไฟล์จึงมี hooks สำหรับแนวคิดที่ไม่นำไปปฏิบัติ (สิ่งที่ถูกประกาศในส่วนหัว) ตัวเชื่อมโยงเชื่อมโยง hooks กับการนำไปใช้ในวัตถุไฟล์อื่นและสร้างไบนารีขนาดใหญ่ที่มีรหัสทั้งหมด (ไลบรารีที่แชร์หรือปฏิบัติการได้)
เฉพาะ VS
ในการทำงานกับผู้ที่อยู่ใน Visual Studio มีพ่อมดบางคนที่ช่วยทำให้สิ่งต่าง ๆ ง่ายขึ้น ตัวช่วยสร้างคลาสใหม่จะสร้างคู่ของส่วนหัวและไฟล์การใช้งานที่ตรงกัน มีแม้แต่ฟีเจอร์เบราว์เซอร์ระดับที่จะช่วยให้คุณประกาศวิธีการใหม่ได้ มันจะฉีดคำจำกัดความในส่วนหัวและต้นขั้วการใช้งานในไฟล์. cpp Visual Studio มีคุณสมบัติเหล่านั้นมานานกว่าทศวรรษ (ตราบใดที่ฉันใช้มัน)