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

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

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

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

重新编译后

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

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

原文地址:https://www.cnblogs.com/indifferent/p/14349552.html