在Java中,有一个通用类被称为“对象”,其中所有类的子类。 我试图让(一所学校的项目)的链接列表库,并且我设法它,使其只有一个类型的工作,但不能多,所以有什么相似?
编辑:我会发布的代码,但我不会在这个时候都在我身上。
在Java中,有一个通用类被称为“对象”,其中所有类的子类。 我试图让(一所学校的项目)的链接列表库,并且我设法它,使其只有一个类型的工作,但不能多,所以有什么相似?
编辑:我会发布的代码,但我不会在这个时候都在我身上。
有没有在C ++没有通用基础类,没有。
你可以实现你自己的,并从中获得你的类,但你必须保持指针(或智能指针)的集合采取多态性的优势。
编辑:重新分析你的问题,我要指出std::list
。
如果你想,你可以专注于多种类型的列表,你使用模板(与std::list
是一个模板):
std::list<classA> a;
std::list<classB> b;
如果你想要,可以在单个实例容纳不同类型的列表,你以基类的方法:
std::list<Base*> x;
class Object{
protected:
void * Value;
public:
template <class Type>
void operator = (Type Value){
this->Value = (void*)Value;
}
template <>
void operator = <string>(string Value){
this->Value = (void*)Value.c_str();
}
template <class Type>
bool operator == (Type Value2){
return (int)(void*)Value2==(int)(void*)this->Value;
}
template<>
bool operator == <Object> (Object Value2){
return Value2.Value==this->Value;
}
template <class ReturnType>
ReturnType Get(){
return (ReturnType)this->Value;
}
template <>
string Get(){
string str = (const char*)this->Value;
return str;
}
template <>
void* Get(){
return this->Value;
}
void Print(){
cout << (signed)this->Value << endl;
}
};
然后做它的一个子类