「已注销」 2020-10-04 16:54 采纳率: 0%
浏览 643
已结题

C++报错C2511以及其他错误:头文件中没有找到重载的成员函数。

这个代码都是我抄书上的,应该是没有错的。

这种找不到头文件里的函数的错误我抄书上的代码的时候,出现过好多次了呜呜呜

我也上网找过别人问的问题,要不就是参数错误,要不就是返回值错误,但是我看了自己的好多遍,都觉得我没有那些错误呀……

#include<iostream>
using namespace std;

const int MaxHTNum = 100;
const int HTNum = 2 * MaxHTNum - 1;

typedef struct
{
//权值
float weight;
int lchild, rchild, parent;
}HTNode;

class Huffman
{
public:

//构造函数
Huffman(int sz)
{
size = sz;
HT = new HTNode[2 * size];
for (int i = 1; i < 2 * size - 1; i++)
HT[i].lchild = HT[i].rchild = HT[i].parent = 0;
}

//析构函数
~Huffman()
{
delete[]HT;
}


//求哈夫曼编码
void HuffmanEncoding(CodeNode HC[]);


private:

//哈夫曼树叶子结点数
int size;

//哈夫曼树结点类型指针
HTNode* HT;
};

typedef struct
{
//存放编码的字符
char ch;
//存放编码串
char bits[MaxHTNum + 1];
//编码长度
int len;
}CodeNode;

//以上是.h部分以下是.cpp部分

void Huffman::HuffmanEncoding(CodeNode HC[])
{
//根据哈夫曼树HT求哈夫曼编码表HC

//c和p分别指示HT中孩子和双亲的位置
int c, p, i;
//临时存放编码串
char cd[MaxHTNum + 1];
//指示编码在cd中起始位置
int start;
//最后一位放上串结束符(size为Huffman树的叶子结点数)
cd[size] = '\0';

for (i = 1; i < size; i++)
{
//初始位置
start = size;
//从叶子结点HT[i]开始上溯
c = i;
//直至上溯到HT[c]为树根为止
while ((p = HT[c].parent) > 0)
{
//若HT[c]是HT[p]的左孩子,则生成代码0,否则生成代码1
cd[--start] = (HT[p].lchild == c) ? '0':'1';
//下一次的叶子是这一次找到的根结点
c = p;
}

//找到树根之后,start代表了最后一次填入代码的cd的下标
HC[i].len = size - start;
strcpy_s(HC[i].bits, HC[i].len, &cd[start]);
}
}

图片说明
图片说明
图片说明
图片说明

  • 写回答

1条回答 默认 最新

  • threenewbee 2020-10-04 17:39
    关注

    代码不完整,错误提示显示错误发生在69行、72行。。。你贴的没有这些
    main函数也没有

    评论

报告相同问题?

悬赏问题

  • ¥15 安装python过程失败怎么解决?
  • ¥15 模电中二极管,三极管和电容的应用
  • ¥15 关于模型导入UNITY的.FBX: Check external application preferences.警告。
  • ¥15 气象网格数据与卫星轨道数据如何匹配
  • ¥100 java ee ssm项目 悬赏,感兴趣直接联系我
  • ¥15 微软账户问题不小心注销了好像
  • ¥15 x264库中预测模式字IPM、运动向量差MVD、量化后的DCT系数的位置
  • ¥15 curl 命令调用正常,程序调用报 java.net.ConnectException: connection refused
  • ¥20 关于web前端如何播放二次加密m3u8视频的问题
  • ¥15 使用百度地图api 位置函数报错?