Ik heb het volgende probleem:
Ik wil graag door middel van één template functie of een int of een String opvragen.
dus door middel van getAttribute<int>("test"); Dat ie dan de int waarde uit de private map, 'intAttributes' returned.
En als ik zeg getAttribute<String>("testje"); Dat ie dan de String waarse uit de private map, 'strAttributes' returned.
Ik vraag me dus af of dit mogelijk is. En zo jah hoe.
De onderstaande code heb ik nu, maar als ik dit compile zegt ie: "Qualifier 'EntryCall' is not a class or namespace name"
Ik hoop dat dit duidelijk genoeg is zodat iemand mij kan helpen
EntryCall.h:
EntryCall.cpp:
Ik wil graag door middel van één template functie of een int of een String opvragen.
dus door middel van getAttribute<int>("test"); Dat ie dan de int waarde uit de private map, 'intAttributes' returned.
En als ik zeg getAttribute<String>("testje"); Dat ie dan de String waarse uit de private map, 'strAttributes' returned.
Ik vraag me dus af of dit mogelijk is. En zo jah hoe.
De onderstaande code heb ik nu, maar als ik dit compile zegt ie: "Qualifier 'EntryCall' is not a class or namespace name"
Ik hoop dat dit duidelijk genoeg is zodat iemand mij kan helpen
EntryCall.h:
C++:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
| #include <map.h> class EntryCall { private: map<String, String> strAttributes; map<String, int> intAttributes; public: EntryCall(); void setAttribute(String naam, String value); void setAttribute(String naam, int value); template <class value_type> value_type getAttribute(String naam); }; #include "EntryCall.cpp" |
EntryCall.cpp:
C++:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
| //Default constructor EntryCall :: EntryCall() { //initialiseer set } //Put attribute value in integer - set void EntryCall :: setAttribute(String naam, int value) { intAttributes[naam] = value; } //Put attributes value in String - set void EntryCall :: setAttribute(String naam, String value) { strAttributes[naam] = value; } template <typename value_type> value_type EntryCall :: getAttribute(String naam){ return intAttributes[naam]; } |