Bonjour,

J'ai créé une petite bibliothèque avec en particulier deux petites classes :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
namespace LD
{
    namespace BDD
    {
        class DataBase;
 
        class VirtualDataBaseFactory
        {
        public:
 
            virtual DataBase * createDataBase(const std::string & dbname, const std::string & login,
                                              const std::string & password = "", const std::string & host="localhost") = 0;
            virtual ~VirtualDataBaseFactory(){}
        };
    }
}

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
namespace LD
{
    namespace BDD
    {
        /** @brief DataBaseFactory for postgresql */
        class PSQLDataBaseFactory : public VirtualDataBaseFactory
        {
        public:
            PSQLDataBaseFactory();
 
            DataBase * createDataBase(const std::string & dbname, const std::string & login,
                                      const std::string & password = "", const std::string & host="localhost");
            virtual ~PSQLDataBaseFactory(){}
        };
    }
}

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include "../../includes/PostgreSQL_impl/psqldatabase.h"
#include "../../includes/PostgreSQL_impl/psqldatabasefactory.h"
 
namespace LD
{
    namespace BDD
    {
        PSQLDataBaseFactory::PSQLDataBaseFactory()
        {
        }
 
        DataBase * createDataBase(const std::string & dbname, const std::string & login,
                                  const std::string & password, const std::string & host)
        {
 
            return new PSQLDataBase(dbname, login, password, host);
        }
    }
}
Et lorsque j'essaye de l'utiliser dans mon programme :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
#include <iostream>
#include "../../Library/DataBase/include/database.h"
 
int main()
{
    LD::BDD::PSQLDataBaseFactory b;
    cout << "Hello World!" << endl;
    return 0;
}
J'ai une erreur d'undefined reference to vtable for LD::BDD::PSQLDataBaseFactory dans LD::BDD::PSQLDataBaseFactory::~PSQLDataBaseFactory(), mais je ne vois pas du tout d'où elle pourrait provenir... avez-vous une idée?