举个例子,我们可以定义:
CList<CPoint,CPoint> a;
CTypePtrList<CPoint,CPoint> a;有什么区别吗?是不是关于type-safe?
如果是,请详细说一下type-safe的内容.
CList<CPoint,CPoint> a;
CTypePtrList<CPoint,CPoint> a;有什么区别吗?是不是关于type-safe?
如果是,请详细说一下type-safe的内容.
CTypedPtrList<CPtrList, CServerSocket*> m_lSock;
其中CServerSocket 使自己写的继承自CAsyncSocket 的一个类CServerSocket* sock = new CServerSocket();
m_lSock.AddTail(sock); //right, same type
CAsyncSocket* test = new CAsyncSocket();
m_lSock.AddTail(test); //wrong, not same type
对于后面一个,在编译时有提示:
error C2664: 'struct __POSITION *__thiscall CTypedPtrList<class CPtrList,class CServerSocket *>::AddTail(class CServerSocket *)' : cannot convert parameter 1 from 'class CAsyncSocket *' to 'class CServerSocket *'这样就保证了此List中各元素的类型一致性