【发布时间】:2015-05-15 11:33:18
【问题描述】:
我的模板类有问题并将其用于 char*。 我在类中存储元素并尝试添加或获取元素,但出现分段错误。 没有 char* 类型的类专业化是否可能?
编辑 1: 假设我不能更改主函数中的代码,只能更改类和方法,但没有专门化。是否可以处理 char* ? ;)
#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;
}
【问题讨论】:
标签: c++ templates char containers