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