我是OOP和C++的新手。C++ ::与所有其他类共享类
我有一个名为数据库的类。这个类的构造函数将建立与数据库的连接。然后,我有其他类,如用户,分数等我希望所有这些类共享从数据库类的连接。我怎么做?
程序流程的示例:
主要功能调用数据库类,它建立与数据库的连接。
我想验证用户,这样的:
一个用户( “用户1”, “密码1”); a.authenticate(“user1”,“password1”);
但在我的Users :: authenticate函数中,如何利用已建立的连接?
编辑:
我用mysql ++在C++中
阅读的答案后,我会用 “传为基准” 的方法。但我遇到severals错误:
main.cpp
mysqlpp::Connection conn(false);
int main() {
if (conn.connect(DATANAME, HOST, DBUSER, DBPASS)) {
Users a(conn, "test","pass");
a.authenticate();
这是我的用户构造器和验证功能:
Users.cpp
Users::Users(mysqlpp::Connection conn, string username, string password) {
this->conn = conn;
this->username = username;
this->password = password;
}
void Users::authenticate() {
if(this->conn != NULL){
cout << "Have connection" << endl;
} else {
cout << "No connection" << endl;
}
}
它可以编译和运行。但它的命令行显示如下:
Segmentation fault.
任何想法为什么?我猜我的代码有误
即使单例模式将*工作*,我不明白为什么大家都在暗示它。本着给予一点指导的精神,除非你发现其他模式导致了单例的不同问题,否则我不会推荐单例。打开多个数据库连接并不是一个问题(至少,为什么我们会假设它是?),所以单例对一个简单的全局变量static应该没有什么优势。 – tenfour 2011-02-13 12:28:34