看下面的代码:
#include
template
class CListEx :public CList
public:
void Sort() {
CNode* p = m_pNodeHead,*p1,*p2;
for (; p; p = p->pNext) {
p1 = p->pNext, p2 = p;
for (; p1; p1 = p1->pNext) {
if (p1->data > p2->data)
p2 = p1;
}
if (p2 != p) {
auto t = p2->data;
p2->data = p->data;
p->data = t;
}
}
}
};
在vs2015中运行没问题,在vs2017和vs2019中 编译CNode和m_pNodeHead会提示找不到标识符。
解决方法如下:
struct CList
至于出现问题的原因,通俗讲是子类作为儿子,需要规规矩矩的,否则老子的东西不给你用。



