mirror of
https://github.com/Relintai/programming_tutorials.git
synced 2025-04-21 21:51:22 +02:00
83 lines
1.2 KiB
Plaintext
Executable File
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;
|
|
}
|