C++ &引用;表达式必须具有“类类型”;使用未记录的库函数
我在试图理解如何实现时遇到了这个错误 我将调用从我使用的函数中剥离出来,并对我的问题进行了非常小的演示:C++ &引用;表达式必须具有“类类型”;使用未记录的库函数,c++,oop,C++,Oop,我在试图理解如何实现时遇到了这个错误 我将调用从我使用的函数中剥离出来,并对我的问题进行了非常小的演示: uint32_t p=0, c; uint8_t k=0x00; c = p.AES::AES(AES_128, k); 我希望明文p由AES加密,密钥k为密文c 相反,我得到的错误是表达式必须具有类类型,这无疑是因为我对OOP缺乏经验 不幸的是,这个库没有很好的文档记录,所以我甚至无法通过示例学习(没有so的帮助!)-我在这里做错了什么?您需要确定枚举的范围 AES crypt = AE
uint32_t p=0, c;
uint8_t k=0x00;
c = p.AES::AES(AES_128, k);
我希望明文p
由AES加密,密钥k
为密文c
相反,我得到的错误是表达式必须具有类类型
,这无疑是因为我对OOP缺乏经验
不幸的是,这个库没有很好的文档记录,所以我甚至无法通过示例学习(没有so的帮助!)-我在这里做错了什么?您需要确定枚举的范围
AES crypt = AES(AES_TYPE::AES_128, k);
此外,要加密/解密,还需要分别使用以下函数
void AES::encryptBlock(uint8_t *out, uint8_t *in);
void AES::decryptBlock(uint8_t *out, uint8_t *in);
例如,您可以从crypt
对象调用它
crypt.encryptBlock();
您需要确定枚举的范围
AES crypt = AES(AES_TYPE::AES_128, k);
此外,要加密/解密,还需要分别使用以下函数
void AES::encryptBlock(uint8_t *out, uint8_t *in);
void AES::decryptBlock(uint8_t *out, uint8_t *in);
例如,您可以从crypt
对象调用它
crypt.encryptBlock();
您有多个问题:首先,您使用
p
作为对象,但它是一个基本类型的变量。其次,尝试将构造函数作为静态方法调用
你应该这样做
AES c(AES::AES_128, k);
它将c
声明为AES
类型的变量,您可以在类中使用成员函数,如
c.encryptBlock(someArray, someOtherArray);
在我看来,你需要学习一些基本的(我的意思是非常基础的)C++。我建议您检查。您有多个问题:首先,您使用
p
作为对象,但它是一个基本类型的变量。其次,尝试将构造函数作为静态方法调用
你应该这样做
AES c(AES::AES_128, k);
它将c
声明为AES
类型的变量,您可以在类中使用成员函数,如
c.encryptBlock(someArray, someOtherArray);
在我看来,你需要学习一些基本的(我的意思是非常基础的)C++。我建议您退房。谢谢您——最后一点您肯定是对的。我有Savigy,但还没有读过关于OOP的章节(谢谢C++)。谢谢,最后一点你肯定是对的。我有Savigy,但是还没有读过OOP(或使用C++)的章节。