C++错误:无法将'Object'转换为'Object*'

C++ Error: Cannot convert 'Object' to 'Object*'

本文关键字:Object 转换 错误 C++      更新时间:2023-10-16

我正在尝试编译我的代码,编译器吐出它无法将Connection转换为Connection*但在函数参数中,我从未指定指针作为参数。

标头声明

找到了我的问题。对不起,伙计们

QueryResult execute_select(Connection *db, QString query);

QueryResult execute_select(Connection db, QString query)
{
    int rc;
    char* error_message = 0;
    QueryResult rs;
    //----------Convert Qstring to char
    char* sql = (char*) query.toStdString().c_str();
    rc = sqlite3_exec(db.db, sql, &callback, (void*) &rs, &error_message);
    #ifdef QT_DEBUG
    if(rc != SQLITE_OK){
    }
    #endif
    sqlite3_close(db.db);

    return rs;
}

发生编译器错误的位置:

编辑:这是获取连接方法,它不返回指针

Connection get_database_connection(char* d_path)
{
    Connection conn;
    sqlite3 *db;
    //Open db
    int rc = sqlite3_open(d_path, &db);
    //Check if db is open
    if(rc != SQLITE_OK){
        conn.status = CONNECTION_FAILED;
        return conn;
    }
    conn.db = db;
    conn.path = (char*) db_path.toStdString().c_str();
    conn.status = CONNECTION_SUCCESS;
    return conn;
}
Connection conn = get_database_connection(converted_path);
//Compiler error
QueryResult rs = execute_select(conn, query_string);

编译器消息:

data\accounts.cpp: 在成员函数 'std::list* Accounts::load((' 中: Data\accounts.cpp:29:55:错误:无法将参数"1"的"连接"转换为"连接*"到"查询结果execute_select(连接( *, QString(' QueryResult rs = execute_select(conn, query_string(;

我希望代码可以编译,但事实并非如此。

正如我在评论中猜到的那样,问题出在函数声明中(您正在查看函数定义/实现(。再次发布此内容,以便您可以接受答案。

我正在查看execute_update(Connection db,QString query(; 声明。execute_select(连接*db,QString查询(;位于文件底部。不知何故,我的眼睛看不见。我更改了指针声明。代码将编译。