<?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[class array??]]></title><description><![CDATA[<p>stimmt folgendes?</p>
<pre><code class="language-cpp">includes..

class Personal[5]
{
    char name[15];
};

void unterprogramm(Personal &amp;)

int main
{
    Personal namen;
    unterprogramm(namen);
}

void unterprogramm(Personal &amp;namen)
{
    cout &lt;&lt; namen[0].name[0];
}
</code></pre>
<p>die klasse muss ein Feld sein. ich brauche dass für meine Adressdatenbank. leider weis ich noch nichts über klassen-felder. kann mir jemand helfen.. bitte.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/118079/class-array</link><generator>RSS for Node</generator><lastBuildDate>Fri, 21 Aug 2026 08:21:24 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/118079.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 14 Aug 2005 23:00:32 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to class array?? on Sun, 14 Aug 2005 23:00:32 GMT]]></title><description><![CDATA[<p>stimmt folgendes?</p>
<pre><code class="language-cpp">includes..

class Personal[5]
{
    char name[15];
};

void unterprogramm(Personal &amp;)

int main
{
    Personal namen;
    unterprogramm(namen);
}

void unterprogramm(Personal &amp;namen)
{
    cout &lt;&lt; namen[0].name[0];
}
</code></pre>
<p>die klasse muss ein Feld sein. ich brauche dass für meine Adressdatenbank. leider weis ich noch nichts über klassen-felder. kann mir jemand helfen.. bitte.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/852275</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/852275</guid><dc:creator><![CDATA[serprime]]></dc:creator><pubDate>Sun, 14 Aug 2005 23:00:32 GMT</pubDate></item><item><title><![CDATA[Reply to class array?? on Sun, 14 Aug 2005 23:23:12 GMT]]></title><description><![CDATA[<p>OK, jetzt ersmals Schritt für Schritt....</p>
<pre><code class="language-cpp">class Personal[5]
{
    char name[15];
};
</code></pre>
<p>Das muss so aussehen:</p>
<pre><code class="language-cpp">class Personal
{
    char name[15]; //std::string wäre besser, aber jetzt egal
};
</code></pre>
<p>Stelle dir mal vor du hast ein Array vom Typ int, dann machste das ja so:</p>
<pre><code class="language-cpp">int meinArray[10]
</code></pre>
<p>Und folglich ist die Syntax bei deiner Klasse genauso.</p>
<pre><code class="language-cpp">Personal myOB; // für nur ein Objekt
Personal myArrayOB[10] // für ein Array von Personal Objekten
</code></pre>
<p>weiter...</p>
<pre><code class="language-cpp">void unterprogramm(Personal &amp;)
</code></pre>
<p>Erstmals fehlt hier das Semikolon und zweiter sollte dein Parameter einen Namen haben:</p>
<pre><code class="language-cpp">void unterprogramm(Personal &amp;namen);
</code></pre>
<p>In der main dann würde ich mal ein return reinpacken <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
<p>Und jetzt was ganz böses was du gemacht hast:</p>
<pre><code class="language-cpp">void unterprogramm(Personal &amp;namen)
{
    cout &lt;&lt; namen[0].name[0];
}
</code></pre>
<p>Auch wenn das jetzt da mit den Array nicht stimmt versuchst du hier auf eine Private variable(name) zuzugreifen.<br />
In einer Klasse sind alle Elemente standardmäßig privat nicht so wie in Unions oder Strukturen öffentlich(public).</p>
<p>Du müsstest also name public machen was aber seeeeeeeeeeeeeeeeeeeeeeeeehhhhhhhhhr bäse ist und name zur Klasse gehört und so vor Außenangriffen geschützt werden muss.<br />
Deswegen muss du eine Elementfunktion bereitstellen die dich diese Variable sehen lässt.</p>
<p>Also sollte deine Klasse so aussehen:</p>
<pre><code class="language-cpp">class Personal
{
    char name[15];
public:
    void showname();
};
</code></pre>
<p>Jetzt brauchst du nicht mehr diese andere blöde Funktion, sondern hast deine eigene Elementfunktion auf die du von außen zugreifen kannst und diese wiederum auf name zugreifen kann.(och wie schön oder :D)</p>
<p>Zum Schluss sollte das dann so aussehen:</p>
<pre><code class="language-cpp">class Personal
    char name[15];
public:
    void showname();
};

void Personal::showname()
{
     cout &lt;&lt;name;
}

int main()
{

    Personal namen;
    namen.showname();

 return 0;
}
</code></pre>
<p>Etwas fehlt dir aber leider noch, nämlich ein Konstruktor womit du name initialisieren kannst. Aber das verrat ich dir jetzt nicht, denn Rest musst du selber lernen <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /> <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
<blockquote>
<p>leider weis ich noch nichts über klassen-felder. kann mir jemand helfen.. bitte</p>
</blockquote>
<p>--&gt; Du solltest lieber noch mal erst intensiv die Grundlagen über Klassen lernen <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/852279</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/852279</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Sun, 14 Aug 2005 23:23:12 GMT</pubDate></item><item><title><![CDATA[Reply to class array?? on Mon, 15 Aug 2005 09:25:15 GMT]]></title><description><![CDATA[<p>thx.. hast es verständlich erklärt... es sollte public sein , auf das hab ich gestern vergessen. ich hab die db schon in einem sehr fortgeschrittenem stadion, hab aber mit einem globalen struct begonnen, und willl jetzt alles auf klassen umprgn.<br />
ich probiers gleich aus.</p>
<p>ABER: bei dem prototypen gibt man doch nur var-typ ohne var-namen an...</p>
<pre><code class="language-cpp">class Personal {public: char vname[20];};
...
void unterprogramm(Personal &amp;);
...
in main()
{...
    Personal namen[5];
    unterprogramm(namen);
}

void unterprogramm(Personal &amp;namen[])
{...}
</code></pre>
<p>Hierbei geht es mir auch um die Übergabe Parameter des Objektfeldes.</p>
<p>stimmt das so..?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/852385</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/852385</guid><dc:creator><![CDATA[serprime]]></dc:creator><pubDate>Mon, 15 Aug 2005 09:25:15 GMT</pubDate></item><item><title><![CDATA[Reply to class array?? on Mon, 15 Aug 2005 11:32:28 GMT]]></title><description><![CDATA[<p>serprime schrieb:</p>
<blockquote>
<p>ABER: bei dem prototypen gibt man doch nur var-typ ohne var-namen an...</p>
</blockquote>
<p>Vollkommen egal, kannst sowohl mit als auch ohne Bezeichner deklarieren.</p>
<p>serprime schrieb:</p>
<blockquote>
<p>Hierbei geht es mir auch um die Übergabe Parameter des Objektfeldes.</p>
<p>stimmt das so..?</p>
</blockquote>
<p>Nicht ganz.</p>
<pre><code class="language-cpp">template &lt;size_t N&gt;
void unterprogramm(const Personal (&amp;namen)[N])
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/852469</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/852469</guid><dc:creator><![CDATA[groovemaster]]></dc:creator><pubDate>Mon, 15 Aug 2005 11:32:28 GMT</pubDate></item><item><title><![CDATA[Reply to class array?? on Mon, 15 Aug 2005 11:40:46 GMT]]></title><description><![CDATA[<p>groovemaster schrieb:</p>
<blockquote>
<p>Vollkommen egal, kannst sowohl mit als auch ohne Bezeichner deklarieren.</p>
</blockquote>
<p>Man kann sogar verschiedene Bezeichner bei Prototypen und Implementationen verwenden. Sinn macht das zwar keinen aber der compiler wertet bei den prototypen sowiso nur die typinformation aus.<br />
Kurt</p>
]]></description><link>https://www.c-plusplus.net/forum/post/852478</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/852478</guid><dc:creator><![CDATA[ZuK]]></dc:creator><pubDate>Mon, 15 Aug 2005 11:40:46 GMT</pubDate></item><item><title><![CDATA[Reply to class array?? on Mon, 15 Aug 2005 12:33:37 GMT]]></title><description><![CDATA[<p>thx</p>
<p>@grovemaster:<br />
kannst du mir das mit dem template erklären. und warum ich die klammern brauche.<br />
also ich bin jetzt leicht verwirrt.</p>
<p>das kann doch nicht so schwer sein ein objekt-feld zu übergeben</p>
<p>liebe grüße serprime</p>
]]></description><link>https://www.c-plusplus.net/forum/post/852522</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/852522</guid><dc:creator><![CDATA[serprime]]></dc:creator><pubDate>Mon, 15 Aug 2005 12:33:37 GMT</pubDate></item><item><title><![CDATA[Reply to class array?? on Mon, 15 Aug 2005 12:42:23 GMT]]></title><description><![CDATA[<p>Ist es auch nicht, wenn du nen std::vector verwendest.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/852529</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/852529</guid><dc:creator><![CDATA[User---]]></dc:creator><pubDate>Mon, 15 Aug 2005 12:42:23 GMT</pubDate></item><item><title><![CDATA[Reply to class array?? on Mon, 15 Aug 2005 13:05:05 GMT]]></title><description><![CDATA[<p>*seufz*</p>
<p>hab ich schon erwähnt, dass ich in der 3. klasse wirtschaftsinformatik bin?? wir haben mit klassen erst begonnen.. aber ich wills wissen. kann mir das bitte jemand so erklären dass ich damit was anfangen kann??</p>
<p>verzweifelte grüße serprime</p>
]]></description><link>https://www.c-plusplus.net/forum/post/852545</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/852545</guid><dc:creator><![CDATA[serprime]]></dc:creator><pubDate>Mon, 15 Aug 2005 13:05:05 GMT</pubDate></item><item><title><![CDATA[Reply to class array?? on Mon, 15 Aug 2005 13:19:50 GMT]]></title><description><![CDATA[<p>Du kannst natürlich auch</p>
<pre><code class="language-cpp">void unterprogramm(const Personal namen[])
// oder
void unterprogramm(const Personal* namen)
</code></pre>
<p>schreiben. Nur ist dann namen eben ein Zeiger, und kein richtiges Array mehr. Sofern dies nicht notwendig ist, ist diese Schreibweise für dich evtl. sinnvoller.</p>
<p>Die Templatisierung ist nur dann sinnvoll, wenn du eben ein builtin Array hast, welches unterschiedlich gross sein kann. Ansonsten kannst du das auch weglassen.</p>
<pre><code class="language-cpp">void unterprogramm(const Personal (&amp;namen)[5])
</code></pre>
<p>Was die Klammerung betrifft, nun, das wird halt von C++ syntaktisch so verlangt. Da die eckigen Klammern Vorrang haben, würde das vom Compiler sonst als</p>
<pre><code class="language-cpp">void unterprogramm(const Personal &amp;(namen[5]))
</code></pre>
<p>ausgewertet werden, was nicht korrekt wäre.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/852563</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/852563</guid><dc:creator><![CDATA[groovemaster]]></dc:creator><pubDate>Mon, 15 Aug 2005 13:19:50 GMT</pubDate></item><item><title><![CDATA[Reply to class array?? on Mon, 15 Aug 2005 13:29:59 GMT]]></title><description><![CDATA[<p>Hallo Serprime,</p>
<p>ein Array wird in C und C++ immer als Zeiger übergeben, d.h. per Referenz funktioniert nicht.</p>
<p>Richtig muß es heißen:</p>
<pre><code class="language-cpp">void unterprogramm(Personal namen[]) // oder auch (Personal *namen)
{
   namen[0].showname();
}
</code></pre>
<p>Leider weiß jetzt das &quot;unterprogramm&quot; die Größe des Arrays nicht.<br />
Daher entweder noch übergeben, also</p>
<pre><code class="language-cpp">void unterprogramm(Personal namen[], size_t size)
{
   for(size_t i = 0; i&lt;size; i++)
     namen[i].showname();
}
</code></pre>
<p>Oder noch besser die STL verwenden:</p>
<pre><code class="language-cpp">typedef std::vector&lt;Personal&gt; VPersonal;

void unterprogramm(const VPersonal &amp;namen) // jetzt Übergabe als konstante Referenz auf vector
{
   for(size_t i = 0; i&lt;namen.size(); i++)
     namen[i].showname();
}
</code></pre>
<p>In der Main dann den Vector initialisieren:</p>
<pre><code class="language-cpp">int main()
{
   VPersonal namen;

   Personal p(&quot;Th&quot;);
   namen.push_back(p);

   p.SetName(&quot;Horst&quot;);
   namen.push_back(p);

   unterprogramm(namen);
</code></pre>
<p>Jetzt mußt du nur noch den Konstruktor von Personal sowie die Methode SetName definieren...</p>
<pre><code class="language-cpp">class Personal
{
   std::string sName;  // &lt;-- std::string ist besser als char*
public:
  Personal(const std::string &amp;name)
    : sName(name)   // &lt;-- hier Initialisierungsliste
  {}

  void SetName(const std::string &amp;name)
  {
    sName = name;  // &lt;-- hier einfach string kopieren
  }
}
</code></pre>
<p>So, für diese Lehrstunde berechne ich 15,- -)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/852570</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/852570</guid><dc:creator><![CDATA[Th]]></dc:creator><pubDate>Mon, 15 Aug 2005 13:29:59 GMT</pubDate></item><item><title><![CDATA[Reply to class array?? on Mon, 15 Aug 2005 16:01:49 GMT]]></title><description><![CDATA[<p>Th schrieb:</p>
<blockquote>
<p>ein Array wird in C und C++ immer als Zeiger übergeben, d.h. per Referenz funktioniert nicht.</p>
</blockquote>
<p>In C nicht, in C++ schon. <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/852670</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/852670</guid><dc:creator><![CDATA[groovemaster]]></dc:creator><pubDate>Mon, 15 Aug 2005 16:01:49 GMT</pubDate></item><item><title><![CDATA[Reply to class array?? on Tue, 16 Aug 2005 17:56:36 GMT]]></title><description><![CDATA[<p>thx an alle die mitgeholfen haben, ich habs mit hilfe eines freundes gelöst.</p>
<p>hier das schema:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
using namespace std;

class MyClass {
public:
	int iTest;
	void MyClass();
};

MyClass::MyClass()
{
	iTest = 5;
}

void TestFunktion(MyClass *pTest)
{
	pTest[1].iTest = 7;
}

int main(void)
{
	MyClass Bertel[2];
	Bertel[1].iTest = 6;
	cout &lt;&lt; &quot;Bertel 1: &quot; &lt;&lt; Bertel[0].iTest &lt;&lt; endl;
	TestFunktion(Bertel);
	cout &lt;&lt; &quot;Bertel 2: &quot; &lt;&lt; Bertel[1].iTest &lt;&lt; endl;

	return EXIT_SUCCESS;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/853611</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/853611</guid><dc:creator><![CDATA[serprime]]></dc:creator><pubDate>Tue, 16 Aug 2005 17:56:36 GMT</pubDate></item><item><title><![CDATA[Reply to class array?? on Tue, 16 Aug 2005 23:41:31 GMT]]></title><description><![CDATA[<p>Hmmmmmmmmm <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /> <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /> <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /><br />
Dein Freund kann das wohl auch nicht soo guuut.</p>
<p>Seit wann haben Konstruktoren Rückgabewerte. Und wenn eh alles öffentlich in der Klasse ist dann benutzt doch lieber struct und nicht class...........</p>
]]></description><link>https://www.c-plusplus.net/forum/post/853772</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/853772</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Tue, 16 Aug 2005 23:41:31 GMT</pubDate></item><item><title><![CDATA[Reply to class array?? on Wed, 17 Aug 2005 07:02:16 GMT]]></title><description><![CDATA[<p>Wie wäre es mit nem klassischen set und get ?</p>
<p>serprime schrieb:</p>
<blockquote>
<pre><code class="language-cpp">#include &lt;iostream&gt;
using namespace std;

class MyClass {
public:
	MyClass():iTest(5){}//Initialisierungsliste statt zuweisung im c-tor.
	void set(const int i){iTest=i;}//setzt den wert des obj auf übergebenes i
    const int get()const{return iTest;}// gibt den wert der obj-var zurück , zB für ausgaben wie unten
private:
	int iTest;//damit das Atribut privat sein kann : public get methode.
};

int main()
{
	MyClass Bertel[2];
	Bertel[1].set(6);
	cout &lt;&lt; &quot;Bertel 1: &quot; &lt;&lt; Bertel[0].get() &lt;&lt; endl;
	Bertel[1].set(7);
	cout &lt;&lt; &quot;Bertel 2: &quot; &lt;&lt; Bertel[1].get() &lt;&lt; endl;
	return 0;
}
</code></pre>
</blockquote>
]]></description><link>https://www.c-plusplus.net/forum/post/853857</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/853857</guid><dc:creator><![CDATA[shapeless]]></dc:creator><pubDate>Wed, 17 Aug 2005 07:02:16 GMT</pubDate></item></channel></rss>