还是只有那些实际使用通用零件的零件?对于模板类,非通用成员函数是否重复?
就像这个例子:
template<class T>
class foo
{
public:
void addStuff(int x,T y)
{
ints_.push_back(x);
generics_.push_back(y);
}
void clear()
{
ints_.clear();
generics_.clear();
}
void setName(std::string name)
{
name_ = name;
}
std::string name_;
std::vector<int> ints_;
std::vector<T> generics_;
};
非通用功能是在线的,因为他们将在一个.cpp文件需要专业化。 Doe他们也得到重复? 只是好奇...
如果你真的想,你总是可以创建一个非模板基类。对于setName来说没有多大意义,但是对于其他情况可能更有用:class HasName {public:void setName(const std :: string&name){name_ = name; } std :: string name_; }; template class foo:public HasName ...' –
Tim