<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Problem mit Funktion innerhalb einer Klasse]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich habe hier ein Skript für die Anbindung einer SqLite3 Datenbank.<br />
Diese ist nach Funktionen aufgeteilt.</p>
<p>Zur Theorie wie das ablaufen soll:</p>
<p>Ich übergebe der Funktion 'speichern' zwei Parameter.<br />
Die Funktion baut eine Verbindung zu einer bestehenden Sqlite3 Datenbank auf und schreibt diese Werte mittels SQL Befehl. Für die Ausführung des SQL Befehls ist daher noch eine Funktion 'callback' erforderlich.</p>
<p>In einem seperaten Programm ohne Klasseninstanzen etc. läuft das problemlos.<br />
Mein g++ Compiler in CodeBlocks meckert:<br />
|Nicht definierter Verweis auf `test::callback(void*, int, char**, char**)'|</p>
<p>In der sechsten Zeile von test.cpp wird die Funktion callback aufgerufen. Ich habe diese ja bereits in der Header Datei aufgelistet. Jedoch gibt es Probleme die Funktion in einer Klasse zu nutzen.</p>
<p>Datei 'test.h'</p>
<pre><code>...
static int callback(void *NotUsed, int argc, char **argv, char **azColName);
double speichern (double Wert1, double Wert 2); 
...
</code></pre>
<p>Datei 'test.cpp'</p>
<pre><code>#include &quot;test.h&quot;

...
double test::speichern(double Wert1, double Wert2)
{
    rc = sqlite3_exec(db, buffer, callback, 0, &amp;zErrMsg);
    if( rc != SQLITE_OK )
    {
        fprintf(stderr, &quot;SQL error: %s\n&quot;, zErrMsg);
        sqlite3_free(zErrMsg);
    }
    else
    {
        fprintf(stdout, &quot;Werte abgespeichert\n&quot;);
    }
    sqlite3_close(db);
}

static int callback(void *NotUsed, int argc, char **argv, char **azColName)
{
    int i;
    for(i=0; i&lt;argc; i++)
    {
        printf(&quot;%s = %s\n&quot;, azColName[i], argv[i] ? argv[i] : &quot;NULL&quot;);
    }
    printf(&quot;\n&quot;);
    return 0;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/329021/problem-mit-funktion-innerhalb-einer-klasse</link><generator>RSS for Node</generator><lastBuildDate>Tue, 07 Jul 2026 04:34:30 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/329021.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 04 Nov 2014 15:59:50 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Problem mit Funktion innerhalb einer Klasse on Tue, 04 Nov 2014 15:59:50 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich habe hier ein Skript für die Anbindung einer SqLite3 Datenbank.<br />
Diese ist nach Funktionen aufgeteilt.</p>
<p>Zur Theorie wie das ablaufen soll:</p>
<p>Ich übergebe der Funktion 'speichern' zwei Parameter.<br />
Die Funktion baut eine Verbindung zu einer bestehenden Sqlite3 Datenbank auf und schreibt diese Werte mittels SQL Befehl. Für die Ausführung des SQL Befehls ist daher noch eine Funktion 'callback' erforderlich.</p>
<p>In einem seperaten Programm ohne Klasseninstanzen etc. läuft das problemlos.<br />
Mein g++ Compiler in CodeBlocks meckert:<br />
|Nicht definierter Verweis auf `test::callback(void*, int, char**, char**)'|</p>
<p>In der sechsten Zeile von test.cpp wird die Funktion callback aufgerufen. Ich habe diese ja bereits in der Header Datei aufgelistet. Jedoch gibt es Probleme die Funktion in einer Klasse zu nutzen.</p>
<p>Datei 'test.h'</p>
<pre><code>...
static int callback(void *NotUsed, int argc, char **argv, char **azColName);
double speichern (double Wert1, double Wert 2); 
...
</code></pre>
<p>Datei 'test.cpp'</p>
<pre><code>#include &quot;test.h&quot;

...
double test::speichern(double Wert1, double Wert2)
{
    rc = sqlite3_exec(db, buffer, callback, 0, &amp;zErrMsg);
    if( rc != SQLITE_OK )
    {
        fprintf(stderr, &quot;SQL error: %s\n&quot;, zErrMsg);
        sqlite3_free(zErrMsg);
    }
    else
    {
        fprintf(stdout, &quot;Werte abgespeichert\n&quot;);
    }
    sqlite3_close(db);
}

static int callback(void *NotUsed, int argc, char **argv, char **azColName)
{
    int i;
    for(i=0; i&lt;argc; i++)
    {
        printf(&quot;%s = %s\n&quot;, azColName[i], argv[i] ? argv[i] : &quot;NULL&quot;);
    }
    printf(&quot;\n&quot;);
    return 0;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2425771</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2425771</guid><dc:creator><![CDATA[julianpe]]></dc:creator><pubDate>Tue, 04 Nov 2014 15:59:50 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit Funktion innerhalb einer Klasse on Tue, 04 Nov 2014 16:01:51 GMT]]></title><description><![CDATA[<p>Ich vermute mal du brauchst ein test:: vor callback in Zeile 20.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2425772</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2425772</guid><dc:creator><![CDATA[Nathan]]></dc:creator><pubDate>Tue, 04 Nov 2014 16:01:51 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit Funktion innerhalb einer Klasse on Tue, 04 Nov 2014 16:02:32 GMT]]></title><description><![CDATA[<p>julianpe schrieb:</p>
<blockquote>
<p>Ich habe diese ja bereits in der Header Datei aufgelistet.</p>
</blockquote>
<p>IN der Klasse? Denn die Funktion unten gehört nicht zur Klasse.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2425775</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2425775</guid><dc:creator><![CDATA[tkausl]]></dc:creator><pubDate>Tue, 04 Nov 2014 16:02:32 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit Funktion innerhalb einer Klasse on Tue, 04 Nov 2014 16:56:27 GMT]]></title><description><![CDATA[<p>tkausl schrieb:</p>
<blockquote>
<p>julianpe schrieb:</p>
<blockquote>
<p>Ich habe diese ja bereits in der Header Datei aufgelistet.</p>
</blockquote>
<p>IN der Klasse? Denn die Funktion unten gehört nicht zur Klasse.</p>
</blockquote>
<p>danke, das war das Stichwort.<br />
Habe es aus der header rausgenommen und ganz einfach öffnen können <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":-)"
      alt="🙂"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2425782</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2425782</guid><dc:creator><![CDATA[julianpe]]></dc:creator><pubDate>Tue, 04 Nov 2014 16:56:27 GMT</pubDate></item></channel></rss>