Zeige Ergebnis 1 bis 11 von 11
  1. #1
    Benutzerbild von stingray2
    Registriert seit
    Okt 2001
    Ort
    Darmstadt
    Beiträge
    5.015
    Likes
    0
    das problem ist extrem dumm, weil ich es schonmal gelöst hatte und jetzt irgendwie nicht mehr auf die "lösung" komme. ich sollte in zukunft nicht mehr so unbekümmert alte dateien löschen.
    das problem äußert sich indem beim ausgeben der felder falsche werte geliefert werden. egal, ich vermute stark, daß es an der deklaration des arrays in der header-datei liegt. ist sicherlich keine große sache wenn man weiß woran es liegt.

    wäre jemand so freundlich und wirft mal kurz einen blick drauf. thx.

    ==main.cpp==
    Code:
    #include <iostream>[br]#include "bubblesort.h"[br][br]using namespace std;[br][br]int main()[br]{[br]	bubblesort bubblesort;[br]	bubblesort.FillArray();[br]	bubblesort.CoutArray();[br]	return 0;[br]}
    ==foo.cpp==
    Code:
    #include <iostream>[br]#include <stdlib.h>[br]#include "foo.h"[br][br]using namespace std;[br][br]void bubblesort::FillArray()[br]{[br]	int array[3];[br][br]	for (int i=0; i<3; i++) // 0-2[br]	{[br]		array[i] = i;[br]	}[br]}[br][br]void bubblesort::CoutArray()[br]{[br]	for (int i=0; i<3; i++)[br]	{[br]		cout << array[i] << endl;[br]	}[br]}[br][br]void bubblesort::BSortArray()[br]{[br]}[br]
    ==foo.h==
    Code:
    class bubblesort[br]{[br]	protected:[br][br]	int array[3];[br][br]	public:[br][br]	void FillArray();[br]	void CoutArray();[br]	void BSortArray();[br]};[br]
    edit: fixed ;>


  2. #2
    Benutzerbild von oNyx
    Registriert seit
    Mai 2001
    Beiträge
    14.099
    Likes
    4
    ich war ma so frei und hab topic+post editiert :>
    弾幕 to the full extent of the jam!

    ze blog [rss] ☆ java game tutorialseee games

  3. #3
    youthenergy
    Gast
    Dir sollte klar sein, dass du mit FillArray() nicht dasselbe array befüllst, wie das was mit CoutArray() ausgegeben wird? Immerhin erstellst du da ein lokales Array auf dem Stack in FillArray()...

  4. #4
    Benutzerbild von stingray2
    Registriert seit
    Okt 2001
    Ort
    Darmstadt
    Beiträge
    5.015
    Likes
    0
    thx, oNyx. :>

    @youthenergy, jetzt wo du es erwähnst kommt es mir auch ein bisschen komisch vor. hast du einen tipp wie ich in den methoden von bubblesort trotzdem immer auf das gleiche array zugreifen kann? geht das nur mit pointern und der erzeugung des arrays im heap?

  5. #5
    youthenergy
    Gast
    Indem du das array einfach nicht lokal definierst? Hat nichts mit Heap oder Stack zu tun, aber ich frage mich, weshalb du überhaupt zwei Arrays dort stehen hast.

  6. #6
    Benutzerbild von stingray2
    Registriert seit
    Okt 2001
    Ort
    Darmstadt
    Beiträge
    5.015
    Likes
    0
    gut, wie definiere ich es nicht lokal?

  7. #7
    3ar1
    Gast
    in der funktion: void bubblesort::FillArray() einfach die zeile int array[3]; weglassen.

    im moment hast du in der klasse bubblesort die variable array definiert. von jeder funktion der klasse bubblesort kannst du auf die variable array zugreifen. in der funktion FillArray() legst du eine neue variable array an. das ist die von youthenergy erwähnte lokale definition. diese variable ist nur in der funktion FillArray() existent, nicht in den anderen funktionen der klasse. wenn du jetzt in FillArray() auf die variable array zugreifst, greifst du auf diese lokale variable zu und nicht auf die klassenvariable array.

  8. #8
    Benutzerbild von stingray2
    Registriert seit
    Okt 2001
    Ort
    Darmstadt
    Beiträge
    5.015
    Likes
    0
    hm, ich glaube ich habe soeben etwas sehr wichtiges gelernt. vielen dank youthenergy & 3ar1 für eure hilfe.

  9. #9
    Benutzerbild von Menace2Sobriety
    Registriert seit
    Okt 2001
    Ort
    Ja, gerne
    Beiträge
    7.100
    QLive Nick
    ja
    Likes
    0
    oder mach so:
    Code:
    void bubblesort::FillArray()
    {
      int array[3];
    
      for (int i=0; i<3; i++) // 0-2
      {
        this->array = i;
      }
    }
    ²
    I feel sorry for people who don't drink. When they wake up in the morning, that's as good as they're going to feel all day - Frank Sinatra / Josh Ward

  10. #10
    youthenergy
    Gast
    Original erstellt von 3ar1
    ...greifst du auf diese lokale variable zu und nicht auf die klassenvariable array.
    Will ja nicht kleinlich sein, aber eine Klassenvariable ist doch etwas anderes

  11. #11
    3ar1
    Gast
    Original erstellt von youthenergy


    Will ja nicht kleinlich sein, aber eine Klassenvariable ist doch etwas anderes
    jo hast recht
    data member ist der richtige ausdruck.

Forumregeln

  • Es ist dir nicht erlaubt, neue Themen zu verfassen.
  • Es ist dir nicht erlaubt, auf Beiträge zu antworten.
  • Es ist dir nicht erlaubt, Anhänge hochzuladen.
  • Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.
  •