This doesn't compile because of the setget function that I put in. My question is why can't I make it work with a specific value being returned? Is this a limitation of template classes or something? Sorry for the silly question, I'm just not familiar with this.Code:#include <iostream> #include <iomanip> using namespace std; template <class T, int element> class Array { public: void putElement(T x, int index); T getElement(int index); int &setgetInteger(); private: T item[element]; int integer; }; template <class T, int element> void Array<T, element>::putElement(T x, int index) { item[index] = x; } template <class T, int element> T Array<T, element>::getElement(int index) { return item[index]; } template <class T, int element> int Array<T, element>::setgetInteger() { return integer; } int main() { char *name[] = {"Meier", "Schulze", "Lehmann", "Aust"}; double contents[]= {2200.5, 1300.5, 1700.30, 4888.80}; Array<char *, 4> nameArray; Array<double, 4> contentsArray; nameArray.setgetInteger() = 56; for(int i = 0; i < 4; i++) { nameArray.putElement(name[i], i); contentsArray.putElement(contents[i], i); } for(i = 0; i < 4; i++) { cout << setiosflags(ios::left) << setw(10) << nameArray.getElement(i) << resetiosflags(ios::left) << setw(8) << contentsArray.getElement(i) << endl; } cout << "Integer output: " << nameArray.setgetInteger() << endl; return 0; }




Reply With Quote