के रूप में आगे की घोषणा मुझे कक्षा के सी ++ आगे की घोषणा में एक गलती मिली, जिसे class Book
के बजाय गलत तरीके से struct Book
के रूप में घोषित किया गया था। मुझे लगता है कि पुस्तक एक संरचना के रूप में प्रयोग की जाती थी, एक वर्ग में बदल गई लेकिन आगे की घोषणाएं बनीं।संरचना बनाम वर्ग
Book.h:
class Book {
...
};
Library.h:
struct Book;
class Library {
std::vector<Book*> books;
};
कोई संकलक चेतावनी और जिसके परिणामस्वरूप कार्यक्रम थे ठीक काम करने के लिए लग रहा था। यह मुझे उत्सुक बना देता है: सिद्धांत में , क्या इससे कभी समस्या हो सकती है? यह सिर्फ एक सूचक है, हां, लेकिन उदाहरण के लिए, यदि कक्षा में वर्चुअल विधियां थीं, एकाधिक विरासत, क्या पॉइंटर्स अलग हो सकते थे?
मुझे डिफ़ॉल्ट सार्वजनिक/निजी के संबंध में कक्षा/संरचना के बीच अंतर पता है, लेकिन मैं विशेष रूप से आगे की घोषणाओं और उन्हें स्वैप करने के संभावित परिणामों के बारे में पूछ रहा हूं।
यह सी ++ में कोई गलती नहीं है, लेकिन वी.एस. आप कुछ दु: ख दे सकता है। – juanchopanza
@ दहन ने अंतर को समझाने के लिए प्रश्न संपादित किया। –
इसी प्रकार का प्रश्न: http://stackoverflow.com/questions/4866425/mixing-class-and-struct –