<?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[Seltsames include-Problem]]></title><description><![CDATA[<p>N'Abend :)!</p>
<p>Wollte die erste objektorientierte Laborübung von der FH zu Hause ausprogrammieren und stoße auf seltsamste Probleme beim Kompilieren. Hier mal die Dateien:</p>
<p>Project1.cpp</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &quot;queue.h&quot;

int main() {

    jobList *aList; //Queue

	char aText[255]; //Eingabe

	std::cout &lt;&lt; &quot;Printerqueue... Text eingeben, um neue Items in die Queue einzufügen; mit Text 'end' Eingabe abbrechen&quot; &lt;&lt; std::endl;

	while (1) { //Endlosschleife

          aList = new jobList;

          std::cin &gt;&gt; aText; //Text einlesen

          if (strcmp(aText, &quot;end&quot;) == 0) //Keine weitere Eingabe mehr
              break; //=&gt; Schleife abbrechen

		  aList.Push(aText); //Job pushen

          //showqueue(); //Queue anzeigen

          }

    std::cout &lt;&lt; std::endl &lt;&lt; &quot;Ersten Job drucken...&quot; &lt;&lt; std::endl;

	aList.Pop(); //Einen Job aus der Queue holen (zu Testzwecken)

    //showqueue(); //Queue anzeigen

	delete jobList; //Queue zerstören

	system(&quot;pause&quot;);

	return 0;

}
</code></pre>
<p>queue.cpp</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &quot;queue.h&quot;
#include &quot;job.h&quot;

/*
void showqueue() {

     int i;

     std::cout &lt;&lt; std::endl &lt;&lt; &quot;Jobliste:&quot; &lt;&lt; std::endl;

     for (i = 0; i &lt; jobcount; i++) {

         std::cout &lt;&lt; &quot;Job #&quot; &lt;&lt; i + 1 &lt;&lt; std::endl;
         std::cout &lt;&lt; &quot;PID: &quot; &lt;&lt; jobList[i].pid &lt;&lt; std::endl;
         std::cout &lt;&lt; &quot;Text: &quot; &lt;&lt; jobList[i].szText &lt;&lt; std::endl &lt;&lt; std::endl;

         }

}
*/

jobList::jobList() { //Konstruktor

	LastPoped = NULL;

	jobCount = 0; //Keine Jobs in der Queue

}

jobList::~jobList() { //Destruktor

	if (LastPoped != NULL)
        delete LastPoped; //Speicher von letzten gepopten Element freigeben

}

int jobList::getjobCount() {

	return jobcount;

}

int jobList::Push(char* Text) { //Job in die Queue einfügen

	CPJob *job = new CPJob(jobcount + 1, Text); //Neuen Job erzeugen...

    jobList[jobcount] = job; //...und in die Queue einfügen

    return ++jobcount; //Jobcount erhöhen; Index zurückgeben, daher ++x und nicht x++

}

CPJob* CPJob::Pop(){

      int i;

      if (LastPoped != NULL) //Vorher gepoptes Element freigeben                
        delete LastPoped;

      LastPoped = jobList[0];

      for (i = 1; i &lt; jobcount; i++) //Jobs nach hinten verschieben in Queue
        jobList[i - 1] = jobList[i];

      jobcount--; //Anzahl Jobs in Queue verringern

      return LastPoped; //Job zurückgeben

}

CPJob* CPJob::getJob(int index) {

	if (index &lt; jobCount) //Index-Check
        return jobList[index];
	else
	  return NULL; //NULL zurückgeben bei ungültigem Index

}
</code></pre>
<p>queue.h</p>
<pre><code class="language-cpp">#ifndef queueheader
#define queueheader

#include &quot;job.h&quot;

class jobList {

private:

	CPJob* Items[10];
	CPJob* LastPoped;
	int jobCount; //Anzahl Jobs

public:

	int Push(char* Text);
    CPJob* Pop();
	int getjobCount();
	CPJob* getJob(int index);

	jobList();
	~jobList();

};

#endif
</code></pre>
<p>job.cpp</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &quot;job.h&quot;

CPjob::CPjob(int Pid, char* Text) { //Konstruktor

	szText = NULL; //Text initialisieren (damit bei setText delete nicht aufgerufen wird)

	setText(Text); //Text setzen

    lPid = Pid;

}

CPjob::~CPjob() { //Destruktor

	delete []szText; //Speicher für Text freigeben

}

void CPjob::setText(char* dummy) {

	if (szText == NULL)
        delete []szText; //Speicher für Text freigeben falls notwendig

	szText = new char[std::strlen(dummy) + 1]; //Text kopieren

	std::strcpy(szText, dummy);

}

char* CPjob::getText() {

	return szText;

}

long CPjob::getPid() {

	return lPid;

}
</code></pre>
<p>job.h</p>
<pre><code class="language-cpp">#ifndef jobheader
#define jobheader

class CPjob {

private:

	char* szText;
	long lPid;

public:

	CPjob(int Pid, char* Text);
	~CPjob();

	void setText(char* dummy);
    char *getText();
	long getPid();

};

#endif
</code></pre>
<p>Ich erhalte mit Visual Studio als auch mit DevCPP folgenden Fehler:</p>
<pre><code>10 C:\FH\OOPLB\Queue\queue.h expected `;' before '*' token
</code></pre>
<p>Das ergibt allerdings keinen Sinn. Wenn ich danach noch einmal kompiliere erhalte ich den Fehler</p>
<pre><code>2 C:\FH\OOPLB\Queue\Project1.cpp In file included from Project1.cpp
</code></pre>
<p>Irgendjemand eine Idee, was ich mit den includes falsch mache (ich vermute nämlich, dass da der Fehler liegt)?</p>
<p>Dust Signs</p>
<p>PS. Das meiste habe ich ohne zu testen programmiert, weil das Programm bald abgegeben werden muss. Es geht mir nur darum, den seltsamen Compilerfehler zu beheben.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/123955/seltsames-include-problem</link><generator>RSS for Node</generator><lastBuildDate>Sun, 23 Aug 2026 18:23:21 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/123955.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 21 Oct 2005 18:14:28 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Seltsames include-Problem on Fri, 21 Oct 2005 18:14:28 GMT]]></title><description><![CDATA[<p>N'Abend :)!</p>
<p>Wollte die erste objektorientierte Laborübung von der FH zu Hause ausprogrammieren und stoße auf seltsamste Probleme beim Kompilieren. Hier mal die Dateien:</p>
<p>Project1.cpp</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &quot;queue.h&quot;

int main() {

    jobList *aList; //Queue

	char aText[255]; //Eingabe

	std::cout &lt;&lt; &quot;Printerqueue... Text eingeben, um neue Items in die Queue einzufügen; mit Text 'end' Eingabe abbrechen&quot; &lt;&lt; std::endl;

	while (1) { //Endlosschleife

          aList = new jobList;

          std::cin &gt;&gt; aText; //Text einlesen

          if (strcmp(aText, &quot;end&quot;) == 0) //Keine weitere Eingabe mehr
              break; //=&gt; Schleife abbrechen

		  aList.Push(aText); //Job pushen

          //showqueue(); //Queue anzeigen

          }

    std::cout &lt;&lt; std::endl &lt;&lt; &quot;Ersten Job drucken...&quot; &lt;&lt; std::endl;

	aList.Pop(); //Einen Job aus der Queue holen (zu Testzwecken)

    //showqueue(); //Queue anzeigen

	delete jobList; //Queue zerstören

	system(&quot;pause&quot;);

	return 0;

}
</code></pre>
<p>queue.cpp</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &quot;queue.h&quot;
#include &quot;job.h&quot;

/*
void showqueue() {

     int i;

     std::cout &lt;&lt; std::endl &lt;&lt; &quot;Jobliste:&quot; &lt;&lt; std::endl;

     for (i = 0; i &lt; jobcount; i++) {

         std::cout &lt;&lt; &quot;Job #&quot; &lt;&lt; i + 1 &lt;&lt; std::endl;
         std::cout &lt;&lt; &quot;PID: &quot; &lt;&lt; jobList[i].pid &lt;&lt; std::endl;
         std::cout &lt;&lt; &quot;Text: &quot; &lt;&lt; jobList[i].szText &lt;&lt; std::endl &lt;&lt; std::endl;

         }

}
*/

jobList::jobList() { //Konstruktor

	LastPoped = NULL;

	jobCount = 0; //Keine Jobs in der Queue

}

jobList::~jobList() { //Destruktor

	if (LastPoped != NULL)
        delete LastPoped; //Speicher von letzten gepopten Element freigeben

}

int jobList::getjobCount() {

	return jobcount;

}

int jobList::Push(char* Text) { //Job in die Queue einfügen

	CPJob *job = new CPJob(jobcount + 1, Text); //Neuen Job erzeugen...

    jobList[jobcount] = job; //...und in die Queue einfügen

    return ++jobcount; //Jobcount erhöhen; Index zurückgeben, daher ++x und nicht x++

}

CPJob* CPJob::Pop(){

      int i;

      if (LastPoped != NULL) //Vorher gepoptes Element freigeben                
        delete LastPoped;

      LastPoped = jobList[0];

      for (i = 1; i &lt; jobcount; i++) //Jobs nach hinten verschieben in Queue
        jobList[i - 1] = jobList[i];

      jobcount--; //Anzahl Jobs in Queue verringern

      return LastPoped; //Job zurückgeben

}

CPJob* CPJob::getJob(int index) {

	if (index &lt; jobCount) //Index-Check
        return jobList[index];
	else
	  return NULL; //NULL zurückgeben bei ungültigem Index

}
</code></pre>
<p>queue.h</p>
<pre><code class="language-cpp">#ifndef queueheader
#define queueheader

#include &quot;job.h&quot;

class jobList {

private:

	CPJob* Items[10];
	CPJob* LastPoped;
	int jobCount; //Anzahl Jobs

public:

	int Push(char* Text);
    CPJob* Pop();
	int getjobCount();
	CPJob* getJob(int index);

	jobList();
	~jobList();

};

#endif
</code></pre>
<p>job.cpp</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &quot;job.h&quot;

CPjob::CPjob(int Pid, char* Text) { //Konstruktor

	szText = NULL; //Text initialisieren (damit bei setText delete nicht aufgerufen wird)

	setText(Text); //Text setzen

    lPid = Pid;

}

CPjob::~CPjob() { //Destruktor

	delete []szText; //Speicher für Text freigeben

}

void CPjob::setText(char* dummy) {

	if (szText == NULL)
        delete []szText; //Speicher für Text freigeben falls notwendig

	szText = new char[std::strlen(dummy) + 1]; //Text kopieren

	std::strcpy(szText, dummy);

}

char* CPjob::getText() {

	return szText;

}

long CPjob::getPid() {

	return lPid;

}
</code></pre>
<p>job.h</p>
<pre><code class="language-cpp">#ifndef jobheader
#define jobheader

class CPjob {

private:

	char* szText;
	long lPid;

public:

	CPjob(int Pid, char* Text);
	~CPjob();

	void setText(char* dummy);
    char *getText();
	long getPid();

};

#endif
</code></pre>
<p>Ich erhalte mit Visual Studio als auch mit DevCPP folgenden Fehler:</p>
<pre><code>10 C:\FH\OOPLB\Queue\queue.h expected `;' before '*' token
</code></pre>
<p>Das ergibt allerdings keinen Sinn. Wenn ich danach noch einmal kompiliere erhalte ich den Fehler</p>
<pre><code>2 C:\FH\OOPLB\Queue\Project1.cpp In file included from Project1.cpp
</code></pre>
<p>Irgendjemand eine Idee, was ich mit den includes falsch mache (ich vermute nämlich, dass da der Fehler liegt)?</p>
<p>Dust Signs</p>
<p>PS. Das meiste habe ich ohne zu testen programmiert, weil das Programm bald abgegeben werden muss. Es geht mir nur darum, den seltsamen Compilerfehler zu beheben.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/898127</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/898127</guid><dc:creator><![CDATA[Dust Signs]]></dc:creator><pubDate>Fri, 21 Oct 2005 18:14:28 GMT</pubDate></item><item><title><![CDATA[Reply to Seltsames include-Problem on Fri, 21 Oct 2005 18:28:06 GMT]]></title><description><![CDATA[<p>in job.h: CPjob<br />
in queue.h: CPJob</p>
<p>groß-/kleinschreibung u know</p>
<blockquote>
<p>2 C:\FH\OOPLB\Queue\Project1.cpp In file included from Project1.cpp</p>
</blockquote>
<p>das is übrigends kein fehler sondern nur ne zeile die angeben soll woher ein bestimmter fehler/warnung herkommt</p>
]]></description><link>https://www.c-plusplus.net/forum/post/898133</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/898133</guid><dc:creator><![CDATA[Sovok]]></dc:creator><pubDate>Fri, 21 Oct 2005 18:28:06 GMT</pubDate></item><item><title><![CDATA[Reply to Seltsames include-Problem on Fri, 21 Oct 2005 19:04:50 GMT]]></title><description><![CDATA[<p><img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f62e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_open_mouth"
      title=":open_mouth:"
      alt="😮"
    /> <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /> Ich komme von der Delphi-Seite her - von demher übersehe ich solche Fehler gerne. Vielen Dank. Bleibt nur noch die Frage, was an dem delete in der main falsch ist...</p>
<pre><code>33 C:\FH\OOPLB\Queue\Project1.cpp expected primary-expression before ';' token
</code></pre>
<p>Dust Signs</p>
<p>PS. Nettes Forum hier; glaub, ich werd mich mal registrieren <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/898177</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/898177</guid><dc:creator><![CDATA[Dust Signs]]></dc:creator><pubDate>Fri, 21 Oct 2005 19:04:50 GMT</pubDate></item><item><title><![CDATA[Reply to Seltsames include-Problem on Fri, 21 Oct 2005 19:06:33 GMT]]></title><description><![CDATA[<p>Entschuldigung, hat sich erledigt... vielen Dank für die Hilfe <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>
<p>Dust Signs</p>
]]></description><link>https://www.c-plusplus.net/forum/post/898178</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/898178</guid><dc:creator><![CDATA[Dust Signs]]></dc:creator><pubDate>Fri, 21 Oct 2005 19:06:33 GMT</pubDate></item></channel></rss>