Hãy xem xét các tập tin tiêu đề sau đây:C++ template typename iterator
template <typename T> struct tNode
{
T Data; //the data contained within this node
list<tNode<T>*> SubNodes; //a list of tNodes pointers under this tNode
tNode(const T& theData)
//PRE: theData is initialized
//POST: this->data == theData and this->SubNodes have an initial capacity
// equal to INIT_CAPACITY, it is set to the head of SubNodes
{
this->Data = theData;
SubNodes(INIT_CAPACITY); //INIT_CAPACITY is 10
}
};
Bây giờ hãy xem xét một dòng mã từ tập tin khác:
list<tNode<T>*>::iterator it(); //iterate through the SubNodes
Trình biên dịch được đem lại cho tôi thông báo lỗi này: Tree.h:38:17: error: need ‘typename’ before ‘std::list<tNode<T>*>::iterator’ because ‘std::list<tNode<T>*>’ is a dependent scope
Tôi không biết tại sao trình biên dịch lại la mắng tôi vì điều này.