我有多个设备,每个设备都有其自己的功能集,每个功能都有不同的值和不同的变量类型。我试图创建一个数据集,以一种简单的方式存储这些变量,以便在动态添加或删除这些设备时访问它们。
我的想法是创建一个包含设备信息的类,该类具有可用于不同功能的结构。为了轻松访问设备和功能,设备/功能名称将作为键存储在映射中,而指向类/结构实例的指针将作为键的值存储。对于设备映射,这很好。但是,对于函数映射,在类内部,我似乎无法使其正常工作。所以...
1)将struct指针放置到映射中的正确方法是什么?
2)将结构放在类中是个好主意吗?
3)我对C ++还是很陌生,所以有没有更好的STL或这样做的方法?
此代码片段位于.hpp文件中
std::map<std::string, device*> devices;
class device {
private:
//Device info
std::string devName;
size_t devId;
char state;
std::map<std::string, struct func *func> functions; //---Error
//Setup for multiple functions
struct func{
//Functions info
std::string funcName;
size_t funcId;
char funcType;
};
public:
//Functions to get device and function values
我在Linux(Ubuntu 19.04)上运行此代码,并使用Visual Studio Code作为我的IDE。它给我的错误是:
期望* func为'>'。
答案 0 :(得分:0)
谢谢大家,我能够弄清楚。
q
这是一个前向声明错误。