<?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[Klassenmemberfunktion innerhlab von anderer Klassenmemberdefinition aufrufen?]]></title><description><![CDATA[<p>Hey C++ler,</p>
<p>Die hierfür relevanten Teile, des Programms sehen soaus:</p>
<pre><code class="language-cpp">class Book
{
public:
	//.
         //.
         //.
         void New_Book(int ISBN,string title,string autor);
	void New_Books();
	int Search_Book(int ISBN,string title,string autor);
	void Change_Status(bool change);
	void Check_Status(int ISBN,string title,string autor);
	void Check_Data(int n);
	void Borrow(int ISBN,string title,string autor);
	void Back(int ISBN,string title,string autor);

};

//................................................................

class User
{
public:
         //.
         //.
         //.
	void Action();
	void Change_Info(string rname,int age,int pw);//Angaben ändern
	void Borrow(int ISBN,string title,string autor);//Buch ausleihen
	void Back(int ISBN,string title,string autor);//Buch zurückgeben
};

//.
//.
//.
//.
//.
//.
//.

void User::Borrow(int ISBN,string title,string autor) 
{
	int pb = Book::Search_Book(ISBN,title,autor);
	bool change = false;
	Book::Change_Status(p,change);
	Users[pu].Book = Books[pb];
	++Users[pu].activ;
	Action();
	return;
}

void User::Back(int ISBN,string title,string autor) 
{
	int pb = Book::Search_Book(ISBN,title,autor);
	bool change = true;
	Book::Change_Status(pb,change);
	Users[pu].Book.ISBN = &quot;...&quot;;
	Users[pu].Book.title = &quot;Kein Buch ausgeliehen&quot;;
	Users[pu].Book.title = &quot;...&quot;;
	Action();
	return;
}
</code></pre>
<p>Der Compiler meldet mehrere Fehler bei Book:: in den 2 Funktionen am Ende.<br />
Fehlermeldung:<br />
'Book::Search_Book': Unzulässiger Aufruf einer nicht statischen Memberfunktion usw......</p>
<p>Warum kann eine Memberfunktion von User keine Memberfunktionen von Book aufrufen? Was mach ich falsch?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/294803/klassenmemberfunktion-innerhlab-von-anderer-klassenmemberdefinition-aufrufen</link><generator>RSS for Node</generator><lastBuildDate>Sat, 15 Aug 2026 18:11:15 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/294803.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 01 Nov 2011 19:17:05 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Klassenmemberfunktion innerhlab von anderer Klassenmemberdefinition aufrufen? on Tue, 01 Nov 2011 19:23:26 GMT]]></title><description><![CDATA[<p>Hey C++ler,</p>
<p>Die hierfür relevanten Teile, des Programms sehen soaus:</p>
<pre><code class="language-cpp">class Book
{
public:
	//.
         //.
         //.
         void New_Book(int ISBN,string title,string autor);
	void New_Books();
	int Search_Book(int ISBN,string title,string autor);
	void Change_Status(bool change);
	void Check_Status(int ISBN,string title,string autor);
	void Check_Data(int n);
	void Borrow(int ISBN,string title,string autor);
	void Back(int ISBN,string title,string autor);

};

//................................................................

class User
{
public:
         //.
         //.
         //.
	void Action();
	void Change_Info(string rname,int age,int pw);//Angaben ändern
	void Borrow(int ISBN,string title,string autor);//Buch ausleihen
	void Back(int ISBN,string title,string autor);//Buch zurückgeben
};

//.
//.
//.
//.
//.
//.
//.

void User::Borrow(int ISBN,string title,string autor) 
{
	int pb = Book::Search_Book(ISBN,title,autor);
	bool change = false;
	Book::Change_Status(p,change);
	Users[pu].Book = Books[pb];
	++Users[pu].activ;
	Action();
	return;
}

void User::Back(int ISBN,string title,string autor) 
{
	int pb = Book::Search_Book(ISBN,title,autor);
	bool change = true;
	Book::Change_Status(pb,change);
	Users[pu].Book.ISBN = &quot;...&quot;;
	Users[pu].Book.title = &quot;Kein Buch ausgeliehen&quot;;
	Users[pu].Book.title = &quot;...&quot;;
	Action();
	return;
}
</code></pre>
<p>Der Compiler meldet mehrere Fehler bei Book:: in den 2 Funktionen am Ende.<br />
Fehlermeldung:<br />
'Book::Search_Book': Unzulässiger Aufruf einer nicht statischen Memberfunktion usw......</p>
<p>Warum kann eine Memberfunktion von User keine Memberfunktionen von Book aufrufen? Was mach ich falsch?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2138918</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2138918</guid><dc:creator><![CDATA[Golfi1812]]></dc:creator><pubDate>Tue, 01 Nov 2011 19:23:26 GMT</pubDate></item><item><title><![CDATA[Reply to Klassenmemberfunktion innerhlab von anderer Klassenmemberdefinition aufrufen? on Tue, 01 Nov 2011 19:20:45 GMT]]></title><description><![CDATA[<p>Tust du mir einen gefallen und postest es nochmal ein wenig übersichtlicher <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
<p>EDIT: aber bitte mit Edit-Funktion <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2138921</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2138921</guid><dc:creator><![CDATA[Lybrial]]></dc:creator><pubDate>Tue, 01 Nov 2011 19:20:45 GMT</pubDate></item><item><title><![CDATA[Reply to Klassenmemberfunktion innerhlab von anderer Klassenmemberdefinition aufrufen? on Tue, 01 Nov 2011 19:24:15 GMT]]></title><description><![CDATA[<p>Search_Book ist keine statische Funktion. Wenn du nicht weißt, was das ist, haben wir das Problem bereits gefunden <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2138926</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2138926</guid><dc:creator><![CDATA[Michael E.]]></dc:creator><pubDate>Tue, 01 Nov 2011 19:24:15 GMT</pubDate></item><item><title><![CDATA[Reply to Klassenmemberfunktion innerhlab von anderer Klassenmemberdefinition aufrufen? on Tue, 01 Nov 2011 19:25:31 GMT]]></title><description><![CDATA[<p>Golfi1812 schrieb:</p>
<blockquote>
<pre><code class="language-cpp">class Book
{
public:
        void New_Book(int ISBN,string title,string autor);
	void New_Books();
	int Search_Book(int ISBN,string title,string autor);
	void Change_Status(bool change);
	void Check_Status(int ISBN,string title,string autor);
	void Check_Data(int n);
	void Borrow(int ISBN,string title,string autor);
	void Back(int ISBN,string title,string autor);

};

class User
{
public:
	void Action();
	void Change_Info(string rname,int age,int pw);//Angaben ändern
	void Borrow(int ISBN,string title,string autor);//Buch ausleihen
	void Back(int ISBN,string title,string autor);//Buch zurückgeben
};

void User::Borrow(int ISBN,string title,string autor) 
{
	int pb = Book::Search_Book(ISBN,title,autor);
	bool change = false;
	Book::Change_Status(p,change);
	Users[pu].Book = Books[pb];
	++Users[pu].activ;
	Action();
	return;
}

void User::Back(int ISBN,string title,string autor) 
{
	int pb = Book::Search_Book(ISBN,title,autor);
	bool change = true;
	Book::Change_Status(pb,change);
	Users[pu].Book.ISBN = &quot;...&quot;;
	Users[pu].Book.title = &quot;Kein Buch ausgeliehen&quot;;
	Users[pu].Book.title = &quot;...&quot;;
	Action();
	return;
}
</code></pre>
</blockquote>
<p>Book::XYZ ----&gt; Mit dieser Syntax spricht man etwas Statisches aus einer Klasse an. Deine Klasse hat nichts statisches.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2138928</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2138928</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Tue, 01 Nov 2011 19:25:31 GMT</pubDate></item><item><title><![CDATA[Reply to Klassenmemberfunktion innerhlab von anderer Klassenmemberdefinition aufrufen? on Tue, 01 Nov 2011 19:32:39 GMT]]></title><description><![CDATA[<p>Gut ich habe die Memberfunktion von Book mit static versehen, jetzt klappts, aber was für eine Funktion hat dieses static?Was &quot;macht&quot;es eigentlich?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2138934</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2138934</guid><dc:creator><![CDATA[Golfi1812]]></dc:creator><pubDate>Tue, 01 Nov 2011 19:32:39 GMT</pubDate></item><item><title><![CDATA[Reply to Klassenmemberfunktion innerhlab von anderer Klassenmemberdefinition aufrufen? on Tue, 01 Nov 2011 19:48:25 GMT]]></title><description><![CDATA[<p>Ach komm, das kannst du Googlen <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f576.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--sunglasses"
      title=":sunglasses:"
      alt="🕶"
    /></p>
<p>Kurze erklärung:<br />
static erzeugt eine einmalige Instanz von etwas. Beispiel:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;

int myfunc()
{
	static int a=1;
	std::cout &lt;&lt; a++ &lt;&lt; '\n';
}

int main()
{
	for(int ct=0; ct&lt;5; ++ct)
		myfunc();
}
</code></pre>
<p>In diesem Beispiel wird die Variable a nur einmal erzeugt, und jedes mal im Funktionsablauf wiederverwendet. Bei Klassen hieße das, static-Member und -Funktionen werden nur einmal erzeugt und müssen außerhalb der Klasse definiert werden (was Variablen angeht <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /> ).</p>
<p>Edit: Beispiel mit Klassen:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;

struct A
{
	static int population;
	static int get_population() {return population;}
};

int A::population = 2;

int main()
{
	std::cout &lt;&lt; A::population &lt;&lt; '\n'
		 &lt;&lt; A::get_population() &lt;&lt; '\n';
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2138936</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2138936</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Tue, 01 Nov 2011 19:48:25 GMT</pubDate></item></channel></rss>