C++类内static 指针函数报错“无法解析的外部符号”解决方法


 

在C++中,静态成员变量在类中仅仅是声明,没有定义,所以要在类的外面定义,实际上是给静态成员变量分配内存。

之所以编译以上代码会出现“无法解析的外部符号 ...::visit..”错误。这是因为静态成员变量visit只是声明还未定义,也就是还没有分配内存,显然是不可以访问的。

static void (*visit)(binaryTreeNode<T>*)=NULL; 既声明又定义了

重新编译后

 

所以最好还是在类外定义:

template<class T>
void (*linkedBinaryTree<T>::visit)(binaryTreeNode<T>*) = NULL;

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM