#include <iostream>
#include <vector>
using namespace std;

template<class T>
class test
{
 public:

  void addItem(T element){
  elements.push_back(element);
  }
  T getItem(int i){
  return elements[i];
  }
  vector<T> elements;
};

int main()
{
char * cpt[]={"tab","tab2","tab3"};
test<char*> test1;
test1.addItem(cpt[1]);
char * item=test1.getItem(0);
//Segmentation fault
// could it be done without specialisation class for char*    ?
item[0]='Z';
cout<<item<<endl;
for(auto v:test1.elements) cout<<v<<endl;
return 0;
}
