003
17.01.2007, 13:09 Uhr
0xdeadbeef
Gott (Operator)
|
...ist das wieder so ein "C++ ist doch auch nur C"-Dozent? Ich vermisse irgendwie die Übergabe per Referenz...
Naja. Ich würd da wahrscheinlich so rangehen:
C++: |
#include <iostream> #include <set> #include <string>
double foo(double *array, std::string &s, std::size_t n) { std::set<double> myset(array, array + n); return *myset.rbegin(); }
int main() { double bar[] = { 20.12, 3.18, 3912.29 , 31.3, 491.23 }; std::string s;
std::cout << foo(bar, s, 5) << std::endl; }
|
...wobei ich mich ernsthaft frage, wozu der string da gut sein soll. Ansonsten,
C++: |
void foo(int x) { ++x; } void bar(int &x) { ++x; } void baz(int *x) { ++*x }
// ...
int y = 0;
foo(y); // ändert y nicht, da y per Wert übergeben wurde foo(2); // ist möglich
bar(y); // erhöht y um eins, da y als Referenz übergeben wurde bar(2); // ist nicht möglich
baz(&y); // Erhöht y um eins, Übergabe per Pointer (&y == Speicheradresse von y)
|
-- Einfachheit ist Voraussetzung für Zuverlässigkeit. -- Edsger Wybe Dijkstra Dieser Post wurde am 17.01.2007 um 13:09 Uhr von 0xdeadbeef editiert. |