我在访问我的数据库时遇到问题。我不会粘贴整个代码,只是实际部分:
filmdb.h
class Film: public QWidget
{
...
public:
QSqlDatabase db;
}
addfilm.h
#include "filmdb.h"
class AddFilm: public QWidget
{
...
}
filmdb.cpp
Film::Film(QWidget *pwgt): QWidget (pwgt)
{
db = QSqlDatabase::addDatabase("QSQLITE");
db.setDatabaseName("films.fdtb");
...
}
addfilm.cpp
#include "addfilm.h" // so filmdb.h is included
AddFilm::AddFilm(QWidget *pwgt): QWidget(pwgt)
{
//here is the problem
//when i try to use db
//compilator says undeclared identifier
}
那么为什么我不能在addfilm.cpp中使用db?感谢。
答案 0 :(得分:1)
如果你想这样做,那么创建Film类的实例,你就可以使用db。
在addFilm构造函数中:
Film *mFilm = new Film;
mFilm->db//do actions with db
答案 1 :(得分:1)
db
是班级Film
的成员,但您尝试在课程AddFilm
中使用该课程并非来自Film
...
如果您的意思是AddFilm
是Film
的特化,那么您必须从AddFilm
派生Film
,在addfilm.h
中执行以下操作:
#include "filmdb.h"
class AddFilm: public Film
{
...
}
此时您可以在db
中使用AddFilm::AddFilm()
。