Rifleman - 40
Experte
(offline)
Dabei seit 09.2003
1540
Beiträge
|
|
Geschrieben am: 04.04.2007 um 15:23 Uhr
|
|
Zitat von -mOsTwAnTeD-: Nä da gibts keinen Grund dafür. Ich bin C++ newbie das ist der Grund 
War doch gar nicht dein Code....
Ach ja...noch was zum copy-constructor:
Da kannst du dir alles nötige von Polaris AriseArray() abkucken. Bei einer shallow-copy würden die beiden m_pData auf das selbe Array zeigen. D.h. du musst eine Kopie davon anlegen.
Es sind die kleinen Dinge, die einen zum Wahnsinn treiben.
|
|
Polaris
Experte
(offline)
Dabei seit 07.2006
1766
Beiträge
|
|
Geschrieben am: 04.04.2007 um 15:23 Uhr
|
|
Zitat von Rifleman:
In AriseArray sollte m_Groesse natürlich noch angepasst werden wenn ich das richtig sehe...sonst wird der nächste Call einen Teil ins Nirwana schicken..
Gibt es einen speziellen Grund, warum bei jedem Aufruf von AriseArray die Blockgröße überprüft wird anstatt einfach nur den constructor und eine Änderungsmethode dies prüfen zu lassen?
/edit: Angenommen, mit Groesse meinst du m_Groesse...
Au ja, sorry, m_Groesse natürlich 
ne gibt keinen Grund ... Meine Vorschläge erheben außerdem keinen Anspruch auf Ideallösung
Patriotismus ist die Tugend der Bosheit! (Oscar Wilde)
|
|
Rifleman - 40
Experte
(offline)
Dabei seit 09.2003
1540
Beiträge
|
Geschrieben am: 04.04.2007 um 15:24 Uhr
Zuletzt editiert am: 04.04.2007 um 15:26 Uhr
|
|
Zitat von -mOsTwAnTeD-: AriseArray(Blockgroesse > 0?Blockgroesse:1);
was passiert in dieser Zeile?
Das prüft nur, ob der Wert von Blockgroesse sinnvoll ist (größer 0) und ersetzt ihn andernfalls mit 1.
/edit:
Und hier würde ich eben sagen, dass du besser den constructor das machen lässt, und eine Änderungsmethode zur Verfügung stellst. Dann kann man an dieser Stelle immer erwarten, dass blockgroesse sinnvoll ist.
Es sind die kleinen Dinge, die einen zum Wahnsinn treiben.
|
|
Polaris
Experte
(offline)
Dabei seit 07.2006
1766
Beiträge
|
Geschrieben am: 04.04.2007 um 15:25 Uhr
Zuletzt editiert am: 04.04.2007 um 15:27 Uhr
|
|
Zitat von -mOsTwAnTeD-: AriseArray(Blockgroesse > 0?Blockgroesse:1);
was passiert in dieser Zeile?
ach sorry, Fragezeichenoperator kennst du wahrscheinlich noch nicht
ist das gleiche wie
if(Blockgroesse > 0)
AriseArray(Blockgroesse);
else
AriseArray(1);
Patriotismus ist die Tugend der Bosheit! (Oscar Wilde)
|
|
-mOsTwAnTeD- - 35
Profi
(offline)
Dabei seit 07.2006
677
Beiträge
|
|
Geschrieben am: 04.04.2007 um 15:26 Uhr
|
|
Zitat von Rifleman: Zitat von -mOsTwAnTeD-: AriseArray(Blockgroesse > 0?Blockgroesse:1);
was passiert in dieser Zeile?
Das prüft nur, ob der Wert von Blockgroesse sinnvoll ist (größer 0) und ersetzt ihn andernfalls mit 1.
weil ich bekomm in der Zeile ne Fehlermeldung
Ich scheiß auf deine Welt voller Arroganz und Geld!
|
|
Polaris
Experte
(offline)
Dabei seit 07.2006
1766
Beiträge
|
|
Geschrieben am: 04.04.2007 um 15:27 Uhr
|
|
Zitat von -mOsTwAnTeD-: Zitat von Rifleman: Zitat von -mOsTwAnTeD-: AriseArray(Blockgroesse > 0?Blockgroesse:1);
was passiert in dieser Zeile?
Das prüft nur, ob der Wert von Blockgroesse sinnvoll ist (größer 0) und ersetzt ihn andernfalls mit 1.
weil ich bekomm in der Zeile ne Fehlermeldung 
welche ?
Patriotismus ist die Tugend der Bosheit! (Oscar Wilde)
|
|
-mOsTwAnTeD- - 35
Profi
(offline)
Dabei seit 07.2006
677
Beiträge
|
|
Geschrieben am: 04.04.2007 um 15:27 Uhr
|
|
Zitat von Polaris: Zitat von -mOsTwAnTeD-: AriseArray(Blockgroesse > 0?Blockgroesse:1);
was passiert in dieser Zeile?
ach sorry, Fragezeichenoperator kennst du wahrscheinlich noch nicht
ist das gleiche wie
if(Blockgroesse > 0)
AriseArray(Blockgroesse)
else
AriseArray(1);
Das Problem ist nur das Blockgroesse in CINtArray::Add
und in CIntArray::SetAt nicht deklariert ist...
wie kann ich das dann machen?
Ich scheiß auf deine Welt voller Arroganz und Geld!
|
|
-mOsTwAnTeD- - 35
Profi
(offline)
Dabei seit 07.2006
677
Beiträge
|
|
Geschrieben am: 04.04.2007 um 15:29 Uhr
|
|
Noch eine frage meins du mit
CIntArray::AriseArray
den konstruktor oder istr das irgendeine methode?
Ich scheiß auf deine Welt voller Arroganz und Geld!
|
|
Polaris
Experte
(offline)
Dabei seit 07.2006
1766
Beiträge
|
|
Geschrieben am: 04.04.2007 um 15:30 Uhr
|
|
Zitat von -mOsTwAnTeD-: Noch eine frage meins du mit
CIntArray::AriseArray
den konstruktor oder istr das irgendeine methode?
das ist eine eigene Membermethode ...
Patriotismus ist die Tugend der Bosheit! (Oscar Wilde)
|
|
Rifleman - 40
Experte
(offline)
Dabei seit 09.2003
1540
Beiträge
|
|
Geschrieben am: 04.04.2007 um 15:30 Uhr
|
|
Zitat von -mOsTwAnTeD-: Das Problem ist nur das Blockgroesse in CINtArray::Add
und in CIntArray::SetAt nicht deklariert ist...
wie kann ich das dann machen?
Ist kein Wunder...du hast blockgroesse einfach in deiner Klasse vergessen....
Es sind die kleinen Dinge, die einen zum Wahnsinn treiben.
|
|
-mOsTwAnTeD- - 35
Profi
(offline)
Dabei seit 07.2006
677
Beiträge
|
|
Geschrieben am: 04.04.2007 um 15:30 Uhr
|
|
Zitat von Polaris: Zitat von -mOsTwAnTeD-: Noch eine frage meins du mit
CIntArray::AriseArray
den konstruktor oder istr das irgendeine methode?
das ist eine eigene Membermethode ...
okey gut
Ich scheiß auf deine Welt voller Arroganz und Geld!
|
|
-mOsTwAnTeD- - 35
Profi
(offline)
Dabei seit 07.2006
677
Beiträge
|
|
Geschrieben am: 04.04.2007 um 15:31 Uhr
|
|
Zitat von Rifleman: Zitat von -mOsTwAnTeD-: Das Problem ist nur das Blockgroesse in CINtArray::Add
und in CIntArray::SetAt nicht deklariert ist...
wie kann ich das dann machen?
Ist kein Wunder...du hast blockgroesse einfach in deiner Klasse vergessen....
hab ich gesagt das ich die da drin hab?
okey ich mach sie noch rein
Ich scheiß auf deine Welt voller Arroganz und Geld!
|
|
Polaris
Experte
(offline)
Dabei seit 07.2006
1766
Beiträge
|
|
Geschrieben am: 04.04.2007 um 15:31 Uhr
|
|
Zitat von -mOsTwAnTeD-: Zitat von Polaris: Zitat von -mOsTwAnTeD-: AriseArray(Blockgroesse > 0?Blockgroesse:1);
was passiert in dieser Zeile?
ach sorry, Fragezeichenoperator kennst du wahrscheinlich noch nicht
ist das gleiche wie
if(Blockgroesse > 0)
AriseArray(Blockgroesse)
else
AriseArray(1);
Das Problem ist nur das Blockgroesse in CINtArray::Add
und in CIntArray::SetAt nicht deklariert ist...
wie kann ich das dann machen?
mach ne Membervariable m_Blockgroesse, weise dieser beim Konstruktoraufruf Blockgroesse zu und ändere in meinem Code Blockgroesse in m_Blockgroesse um
Patriotismus ist die Tugend der Bosheit! (Oscar Wilde)
|
|
-mOsTwAnTeD- - 35
Profi
(offline)
Dabei seit 07.2006
677
Beiträge
|
|
Geschrieben am: 04.04.2007 um 15:33 Uhr
|
|
Danke Jungs für eure hilfe aber ich muss jetzt auf mein Bus (hätt ich fast vergessen)
mfg most
Ich scheiß auf deine Welt voller Arroganz und Geld!
|
|
Rifleman - 40
Experte
(offline)
Dabei seit 09.2003
1540
Beiträge
|
|
Geschrieben am: 04.04.2007 um 15:34 Uhr
|
|
Zitat von Polaris: mach ne Membervariable m_Blockgroesse, weise dieser beim Konstruktoraufruf Blockgroesse zu und ändere in meinem Code Blockgroesse in m_Blockgroesse um
Mit "anpassen" meinte ich auch m_Groesse += Blockgroesse. Das feht.
Es sind die kleinen Dinge, die einen zum Wahnsinn treiben.
|
|