programming_tutorials/01_oop_basics/05_vector.txt

83 lines
1.2 KiB
Plaintext
Executable File

A 4. feladatban elékszített IntVektor osztályból csinálj egy templatekkel általánosított Vector osztályt.
Fontos! A templatelt tagfüggvényeket implementációját vector.h-ba kell rakni! Vagy bele az osztályba, vagy a vector.h aljára!
Enélkül undefined reference hibákat fog dobmi a fordító!
Eddíg pl:
class IntVector {
int get(int index);
set(int index, int val);
void push_back(int val);
//etc...
IntVector();
private:
int *_data;
};
int main() {
IntVector a;
a.push_back(1);
a.push_back(2);
a.push_back(3);
a.push_back(4);
cout << a.get(1);
a.set(1, 4);
cout << a.get(1);
//etc...
return 0;
}
Most:
template <class T>
class Vector {
T get(int index);
set(int index, T val);
//etc...
Vector();
private:
T *_data;
};
int main() {
Vector<int> a; //Mindenhol ahol T-van, ki lessz replacelve int-re a compiler által!
a.push_back(1);
a.push_back(2);
a.push_back(3);
a.push_back(4);
cout << a.get(1);
a.set(1, 4);
cout << a.get(1);
//etc...
//de így már lehet:
Vector<float> b;
Vector<string> c;
//...
return 0;
}