-1
class MySqlDbFactory: public DbDatabaseFactory{
public:
IConnection* CreateConnection(){
return new MySqlDbConnection();
}
ICommand* CreateCommand(){
return new MySqlDbCommand();
}
};
class Factory{
DbDatabaseFactory* _databaseFactory;
IConnection* _connection;
ICommand* _command;
public:
Factory(DbDatabaseFactory*);
void Start(){
_connection->Connect();
if(_connection->connectionState == true){
_command->Execute("SELECT ...");
}
};
};
Factory::Factory(DbDatabaseFactory* dbFactory)
{
_databaseFactory = dbFactory;
_connection = dbFactory->CreateConnection();
_command = dbFactory->CreateCommand();
}
int main(int argc, char *argv[])
{
MySqlDbFactory* mySQlFactory = new MySqlDbFactory();
Factory factory = new Factory(mySQlFactory); ...
我从Factory*' to non-scalar type
工厂”的错误C++:传递指针类参数的构造函数
转换要求 上
Factory factory = new Factory(mySQlFactory); line.
你有什么建议吗?
编译代码谢谢你,但是当我打电话厂的启动方法factory.Start();它说“开始”尚未宣布。你有关于这个的建议吗? – cagin
我会建议你采取一些基本的C++教程。答案是:factory-> Start();这是需要的,因为factory是一个指向Factory对象的指针。 – cageman
在这种情况下,编写MySqlDbFactory mySqlFactory就足够了,不需要new。 (那么你也可以省略dereference' - >') – erenon