- 论坛徽章:
- 0
|
写了一个左式堆的框架程序
#include<iostream>
using namespace std;
class leftHeap
{
public:
leftHeap();
leftHeap(const leftHeap &);
~leftHeap();
void merge(leftHeap &rhs);
private:
struct leftHeapNode
{
leftHeapNode *leftChild;
leftHeapNode *rightChild;
int data;
int npl;
leftHeapNode( ):leftChild(NULL),rightChild(NULL),data(0),npl(0){}
};
leftHeapNode* root ;
leftHeapNode* merge(leftHeapNode *h1,leftHeapNode *h2);
};
leftHeap::leftHeap()
{
}
leftHeap::leftHeap(const leftHeap &rhs)
{
}
leftHeap::~leftHeap()
{
}
leftHeapNode* leftHeap::merge(leftHeapNode *h1,leftHeapNode *h2)
{
}
void leftHeap ::merge(leftHeap &rhs)
{
root = merge(root,rhs.root);
rhs.root = NULL;
}
int main()
{
leftHeap _heap1;
leftHeap _heap2;
// _heap1.merge(_heap2);
return 0;
}
但是编译的时候出错了,
报这一行leftHeapNode* leftHeap::merge(leftHeapNode *h1,leftHeapNode *h2)
leftHeap.cpp:45: error: expected constructor, destructor, or type conversion before '*' token
这是为什么?
不能在类外定义吗? |
|