访问泛型类型的公共字段

时间:2015-01-15 23:25:14

标签: c++ templates

我想在C ++中实现通用队列,但我遇到了模板问题:

队列元素struct

template<class T>
struct Elem{
    T *obj;
    Elem<T> *sled;
    Elem(T *p){
        obj=p;
        sled=0;
    }
};

这是Queue类:

template<class T> class Queue{ 
public:
    //
    // public function go here....
    //

    T* get(ID id){
        for(Elem<T> *tek = head; tek; tek = tek->sled ){
            if(id == tek->obj->id ){ // <--- ERROR: `id` is not member of '<template class>'
                return tek->obj;
            }
        }
        return 0;
    }


 }

现在,如果我定义:

Queue<PCB>* myQueue = ....

编译器输出错误:

  

id不是PCB

的成员

问题:

如果所有T类都具有该特定字段(在此示例中为id字段),是否可以访问模板类的公共字段?

0 个答案:

没有答案
相关问题