Announcement

Collapse
No announcement yet.

Werte einem Array zuweisen

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Werte einem Array zuweisen

    Hallo alle<BR>
    <BR>
    Ich möchte meinem Array mehrere Wert gleichzeitig zuweisen. Aber der Kompiler stolpert immer darüber. Da ich den Kompiler nicht neu schreiben möchte ich euch fragen wie ich die Werte dem Array zuweisen muss.<BR>
    Also in der Klassendeklaration habe ich folgendes geschrieben:<BR>
    <BR>
    int PC_1[56];<BR>
    <BR>
    Nun möchte ich das Array indem standart Konstruktor mit werten füllen. Und zwar alles auf einmal. Das möchte ich wie folgt machen:<BR>
    <BR>
    *PC_1 = {56, 48, 40, 32, 24, 16, 8, 0, 57, 49, 41, 33, 25, 17,
    9, 1, 58, 50, 42, 34, 26, 18, 10, 2, 59, 51, 43, 35,
    62, 54, 46, 38, 30, 22, 14, 6, 61, 53, 45, 37, 29, 21,
    13, 5, 60, 52, 44, 36, 28, 20, 12, 4, 27, 19, 11, 3};<BR>
    <BR>Aber genau hir liegt das Problem. Denn genau hir kommt ein Syntaxfehler. Wie muss ich vorgehen, dass das Array die Werte schlukt?<BR>
    <BR>
    Gruss Renato

  • #2
    hi

    versuchs mal mit

    <PRE>
    int PC_1[56] = {56, 48, 40, 32, 24, 16, 8, 0, 57, 49, 41, 33, 25, 17, 9, 1, 58, 50, 42, 34, 26, 18, 10, 2, 59, 51, 43, 35, 62, 54, 46, 38, 30, 22, 14, 6, 61, 53, 45, 37, 29, 21, 13, 5, 60, 52, 44, 36, 28, 20, 12, 4, 27, 19, 11, 3};
    </PRE&gt

    Comment


    • #3
      Jepp das klappt so.
      Du musst Ihm natürlich sagen, dass der int n Array ist

      Comment


      • #4
        Danke euch beiden für die Hilfe. Aber so get das nicht. Denn ich habe die Variablen in einer Klasse. Der Code sieht in etwa so aus.<BR>
        <BR>
        class a {<BR>
        private<BR>
        int *PC_1;<BR>
        }<BR>
        <BR>
        und dann im standart konstruktor:<BR>
        <BR>
        void a::a()<BR>
        {<BR>
        PC_1[2] = {1, 2};<BR>
        <BR>
        So get es eben auch nicht. Aber wie muss ich es machen damit ich in der ganzen Klasse auf das Array zugreifen kann? Inerhalb der Deklaration der Klasse kann ich die Werte auch nicht zuweisen.<BR>
        <BR>
        Gruss Renat

        Comment


        • #5
          Hi,
          ich glaube, das geht nur so:
          <PRE>

          class a{
          public:
          a();

          private:
          int PC_1[2];
          };

          a::a() //ohne void!
          {
          int dummy[] = {1,2};

          for(int i = 0; i < 2; i++)
          PC_1[i] = dummy[i];

          //macht bei 2 Elementen nicht sehr viel Sinn...
          }

          Nicht sehr elegant, aber naja. Oder du packst das array PC_1 statt in die Klasse in einen namespace ?

          </PRE&gt

          Comment


          • #6
            Ciao Martin<BR>
            <BR>
            Wo du recht hast hast du recht. Bei zwei Elementen macht das keinen sinn. Aber wie du oben sehen kannst möchte ich nicht nur zwei sondern 56 Werte eintragen. So macht dies dann doch sinn. Ich habe nur ein kleines Beispiel eingetragen da ich nicht nochmals alle 56 Zahlen eingeben wolte. Ich kann die Zeit für bessers gebrauchen.<BR>
            Die Lösung mit der Klasse und dem namespace würde mich noch interesieren. Wie würde die aussehen? Aber bitte nur mit zwei Werten.<BR>
            <BR>
            Gruss Renat

            Comment


            • #7
              Hi,
              das mit den zwei Werten war auch nur so ne Randbemerkung, dein Problem ist mir schon klar :-)
              Als globale Variable anlegen, ginge es ja so:

              int PC_1[]={1,2};
              //oder besser noch: const int PC_1[]

              class a{
              ...
              };

              Mit dem Namespace erreicht man, dass PC_1 nicht mehr global, sondern nur noch in seinem Namensraum ansprechbar ist und es keine Konflikte mit evtl. anderen existierenden PC_1's gibt:

              namespace feld
              {
              const int PC_1[]= {1,2};
              }

              class a{
              ...};

              ...

              Zugriff auf Elemente des Feldes:

              using namespace feld;
              int blabla = PC_1[2];

              usw...

              oder

              int blabla = feld::PC_1[2];

              Was Du _nicht_ erreichst, ist, dass keine andere Klasse auf das Feld zugreifen kann, so wie Du es mit 'private' in der Klasse erreichst.

              s.a.: http://www.cplusplus.com/doc/tutorial/tut5-2.html

              Gruß, Marti

              Comment


              • #8
                Ciao Martin<BR>
                <BR>
                Danke für deine Hilfe. Zum Glück verstehst du Spass so wie ich. Das finde ich toll.<BR>
                <BR>
                Gruss Renat

                Comment

                Working...
                X