1

私はこのチュートリアルに従っていますが、よくわからないエラーがいくつか発生します。私はほとんど2つの機能を持っています。1つはそれを閉じるためのもので、もう1つはそれを開くためのものです。なぜこれらのエラーがここにあるのか私にはわかりません。

DatabaseWriter.h:

#ifndef FILEPARSER_H
#define FILEPARSER_H

#include "DatabaseWriter.h"

using namespace std;

class DatabaseWriter
{
private:

public:
    void CloseConn(PGconn *conn);
    PGconn DatabaseWriter::*ConnectDB ();

    DatabaseWriter ();

};

#endif

DatabaseWriter.cpp

#include "stdafx.h"
#include <string>
#include <string>
#include "libpq-fe.h"
#include "DatabaseWriter.h"

using namespace std;

const char* CONNECTIONSTRING = "user=postgres password=superman dbname=poker hostaddr=127.0.0.1 port=5432";

void DatabaseWriter::CloseConn (PGconn *conn)
{
    PQfinish(conn);
    getchar();
    exit(1);
}

PGconn DatabaseWriter::*ConnectDB ()
{
    PGconn *conn = NULL;

    // Make a connection to the database
    conn = PQconnectdb(CONNECTIONSTRING);

    // Check to see that the backend connection was successfully made
    if (PQstatus(conn) != CONNECTION_OK)
    {
        printf("Connection to database failed");
        CloseConn(conn);
    }

    printf("Connection to database - OK\n");

    return conn;
}

私は以前にCloseConnを自分で定義したので、未定義であってはなりません。

エラー1

ConnectDBの戻りタイプはPGconnであり、connはPGconnであるため、なぜ返さないのかわかりません。

エラー2

明らかに私が露骨に見ているものがあるので、あなたの努力に感謝します。

4

1 に答える 1

1

クラス宣言の内部は必要ありませんDatabaseWriter::。定義のみが必要です。また、特にがその中にある場合は、その定義を詳しく調べることをお勧めします*

于 2012-08-01T11:33:49.047 に答える