因此,我正在学习 C++ 并学习在我的实践中使用 SQLite 来实现跨应用程序运行的数据持久性,这很有趣。
但是我碰到了这个问题:
该程序是一本成绩册,经典的 Ditel C++ 书籍练习。我的课程结构如下:
~/classes/Database.h/cpp // A small wrapper for sqlite3
~/classes/Student.h/cpp // The Student object with name and grades (Uses Database)
~/classes/GradeBook.h/cpp // Takes care of most of the application logic and UI (Uses Database and Student)
~/main.cpp // contains just the main function and base Instances of Database and GradeBook
这样我就可以从 main() 实例化单个数据库对象,并通过引用 GradeBook 和 Student 将其传递,以便他们可以使用数据库函数。我尝试了所有可能的包含顺序,事实证明只有这个顺序对我有用。
Student includes Database.
GradeBook includes Student, gets access to Database.
main.cpp includes GradeBook, gets access to both Database and Student.
问题是,这对吗?包含似乎从最深的类向后“级联”到 main.cpp 文件似乎完全违反直觉,换句话说,我做得对吗,还是我错过了什么?
如果是这样,关于这种“级联”如何工作的一点解释或指示将会非常棒。
谢谢!