Đoạn code dưới đây cung cấp cho các lỗi:STL lỗi biên dịch khi xác định iterator trong lớp mẫu
error: type ‘std::list<T,std::allocator<_Tp1> >’ is not derived from type ‘Foo<T>’
error: expected ‘;’ before ‘iter’
#include <list>
template <class T> class Foo
{
public:
std::list<T>::iterator iter;
private:
std::list<T> elements;
};
Tại sao và điều này nên được có đúng không?
tôi vẫn không nhận được tại sao điều này là như vậy. Ví dụ, tại sao chúng ta không cần sử dụng 'typename std :: list elements'? –
@Agnel: Bởi vì sau đó chúng tôi sẽ không cố gắng truy cập các tên được xác định trong một lớp mẫu. – UncleBens