加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c – 错误,因为函数在类中是纯虚拟的?

发布时间:2020-12-16 09:35:28 所属栏目:百科 来源:网络整理
导读:将代码从 Classes as parameter of function c++复制到我的代码后,我收到错误:注意:因为以下虚函数在’TEA’中是纯的:和XTEA,但只有这两个函数.其他功能,AES,BLOWFISH,CAMELLIA,RC4,RC5,RC6等都可以使用.它只是那两个错误的函数.我不明白为什么. 来自链接
将代码从 Classes as parameter of function c++复制到我的代码后,我收到错误:注意:因为以下虚函数在’TEA’中是纯的:和XTEA,但只有这两个函数.其他功能,AES,BLOWFISH,CAMELLIA,RC4,RC5,RC6等都可以使用.它只是那两个错误的函数.我不明白为什么.

来自链接的代码(稍加修改):

class CryptoAlgorithm
{
   public:
      virtual std::string encrypt(std::string DATA) = 0;
      virtual std::string decrypt(std::string DATA) = 0;
      virtual void setkey(std::string KEY) = 0;
};

和TEA setkey()

void setkey(std::string KEY,unsigned int ROUNDS = 64,uint32_t DELTA = 0x9e3779b9,uint32_t TOTAL = 0xc6ef3720)

其他类中的所有函数都是相同的. encrypt / decrypt只有std :: string DATA作为参数. void setkey有std :: string KEY和其他可选参数.但是,像RC6这样的函数,其setkey也有其他可选参数不会出错.

有什么理由吗?

此外,所有类都具有:声明旁边的公共CryptoAlgorithm.

解决方法

您无法创建抽象类的对象.您需要在派生类中对纯虚函数进行ovverride,以便能够创建派生类的对象.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读