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,以便能够创建派生类的对象.
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |