作爲以下代碼,我想使用別名來避免內部類NIL的靜態成員的繁瑣寫作。如何使用靜態內部類成員的別名?
//in RBTree.hpp
template <typename T, typename Comp>
class RBTree{
public:
struct TreeNode{
...
static TreeNode* NIL = new TreeNode();
...
}
}
//in RBTree_IMPL.hpp
template <typename T, typename Comp>
using NIL = ???
我想使用「使用」關鍵字,以避免繁瑣的寫作如:
//in BST.hpp
template <typename T, typename Comp>
class BST{
public:
struct TreeNode{
...
}
}
//in BST_IMPL.hpp
template <typename T, typename Comp>
using TreeNode = typename BST<T, Comp>::TreeNode;
作爲上述,這將是簡單的。所以我想找到一個像上面那樣使用靜態內部成員的方法。謝謝!
使用' '創建一個類型別名。 'NIL'不是一個類型,它是一個靜態類成員。 –
恩,如果我想這樣做,我該怎麼辦? – wind2412
爲'RBTree :: TreeNode :: NIL'創建一個鍵盤宏。請注意,這僅在模板範圍之外需要。在模板內部,'TreeNode :: NIL'就足夠了,或者''在'TreeNode'範圍內只是'NIL'。也許幾個'typedef RBTree :: TreeNode',在這裏和那裏,將減輕痛苦。 –