书中构建了一个linkedBinaryTree类,其中定义了一个访问函数:
static void(*visit)(binaryTreeNode<E>*)
作为一个静态成员需要在类外定义
为什么
template<class E>
void (*linkedBinaryTree<E>::visit)(linkedBinaryTreeNode<E>*) = NULL;
/*
template<class E>
void (linkedBinaryTree<E>::*visit)(linkedBinaryTreeNode<E>*) = NULL;
*/
上面的代码可行,而下面注释掉的代码不可以
visit是函数指针,类域名本来就是修饰变量的
类比一下:
class A
{
public:
static char *p;
};
char * A::p;