【发布时间】:2011-12-13 18:12:39
【问题描述】:
我有以下(截断的)类声明:
template <typename T>
class btree
{
public:
btree(const btree<T>& original); //This is btree's copy constructor
private:
struct btree_node
{
btree_node(const btree_node &other)
{
//This is node's copy constructor
}
}
btree_node* headNode;
}
而btree的拷贝构造函数是这样实现的:
template <typename T>
btree<T>::btree(const btree<T>& original)
{
headNode = new btree_node(original.*headNode);
}
original.*headNode 应该返回 original.headNode 指向的 btree_node,从而匹配 btree_node 的复制构造函数参数。
但是我收到以下错误:
错误:'((btree*)this)->btree::headNode' 不能用作成员指针,因为它的类型是'btree::btree_node*'
我做错了什么?
【问题讨论】:
标签: c++ class pointers dereference