004
20.10.2002, 14:13 Uhr
void*
Generic Pointer (Operator)
|
Hallo!
1. new geht natürlich 2. Am einfachsten sind wohl Referenzen (und am meisten C++-Stil)
Ein Bsp. das alle Möglichkeiten ausschöpft:
C++: |
#include <vector> #include <iostream>
void g(const std::vector<int>& lvec) { // hier kann der vector gelesen, aber nicht verändert werden std::cout << lvec.size(); }
void f(std::vector<int> &lvec) { // hier kann man mit dem vector alles machen, das Original wird verändert, z.B. lvec.push_back(33); }
void h(std::vector<int> *pvec) { // hier kann man mit dem vector alles machen, das Original wird verändert, z.B. pvec->push_back(33); }
void i(const std::vector<int> *pvec) { // hier kann der vector gelesen, aber nicht verändert werden, z.B. std::cout << pvec->size(); }
void j(std::vector<int> lvec) { // hier kann man alles mit dem vector machen, aber es wird nur die lokal Kopie verändert! // Achtung: wenig effizient, da der ganze vector bei jedem Auruf kopiert werden muss lvec.push_back(33); }
int main(void) { // nur als Anmerkung: Das geht natürlich std::vector<int> *pVector=new std::vector<int>; delete pVector;
// Bsp. std::vector<int> vec; g(vec); f(vec); h(&vec); i(&vec); j(vec);
return(0); }
|
Gruß void* -- Gruß void* |