निजी चर एक वर्ग के उपयोगकर्ता के लिए जटिलता और कार्यान्वयन विवरण छिपाने का एक तरीका है। यह बल्कि एक अच्छी सुविधा है। लेकिन मुझे समझ में नहीं आता है कि c ++ में हमें उन्हें एक क्लास के हेडर में डालने की आवश्यकता क्यों है। मैं इसे करने के लिए दो कष्टप्रद नीचे देख रहा हूं:
- यह उपयोगकर्ता से हेडर को बंद कर देता है
- यह सभी क्लाइंट पुस्तकालयों के पुनर्संयोजन के लिए मजबूर करता है जब भी आंतरिक को संशोधित किया जाता है
क्या इस आवश्यकता के पीछे कोई वैचारिक कारण है? क्या केवल संकलक का काम आसान करना है?
struct foo{};
) की अनुमति नहीं है, लेकिन आगे की घोषणाएं ( struct foo;
) हैं।