Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » array als parameter so fehleranfällig?

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
06.10.2006, 13:55 Uhr
~testo
Gast


Hallo,

ich rufe meine funktion in der mein array verändert wird so auf:


C++:
std::vector< double > vec;

Method1(col,
               dimension,
               vec);



und die funktion an sich ist so aufgebaut:


C++:
void
Class::Method1(const int col,
                        const int dimension,
                        std::vector< double >& vec)
{
    vec.clear();
    vec.resize(dimension, 0.0);
    vec[col] = 1.0;
}



Jetzt würde ich gern wissen ob die übergabe so fehlerunanfällig ist? Oder ist es viel besser mit pointern anstatt mit referenzen zu arbeiten?
Oder gar mit kopien in der gecallten funktion?

Danke euch
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
06.10.2006, 16:33 Uhr
mischa
Fragender


eine reverenz zu übergeben ist schon besser als einen pointer zu übergeben
--
Latein Unterricht ist die spätere Rache der Römer an den Germanen.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
09.10.2006, 13:58 Uhr
RHBaum




Zitat:

(const int col,const int dimension...)


Das const als uebergabe parameter iss zu gut gemeint ^^
wird eh kopiert, eine rueckwirkung gibt es damit nich. viel optimieren kann der compiler da eh nicht ^^

Ansonsten unter c++

Referenzen da wo geht, pointer da wo man unbedingt muss ^^
pointer also nur wenn man c schnittstellen bedient, nen explizieten ungueltigkeitswert braucht, oder man das "zugrundeliegende Objekt" aendert, also quasi den zeiger umbiegen muss ....

Wenn man nicht muss, sollt man auch ned kopieren ... besonders strings vectoren etc nich ....

Ciao ...
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
10.10.2006, 16:20 Uhr
0xdeadbeef
Gott
(Operator)


Hmm. Prinzipiell denkbar so, wobei ich noch auf col < dimension prüfen würde. Allerdings...warum überhaupt ein dimension-Argument mitgeben? Das hat der vector doch schon als Member. Wie wärs zum Beispiel mit

C++:
    if(col >= vec.size()) vec.resize(cols + 1, 0.0);
    vec[col] = 1.0;


...oder sowas in der Art - kommt drauf an, was das Ding eigentlich genau machen soll.
--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: