Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/126.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何获取一个容器,我可以通过其索引调用从唯一类型派生的类型_C++_Templates_Inheritance_Memory - Fatal编程技术网

C++ 如何获取一个容器,我可以通过其索引调用从唯一类型派生的类型

C++ 如何获取一个容器,我可以通过其索引调用从唯一类型派生的类型,c++,templates,inheritance,memory,C++,Templates,Inheritance,Memory,这个问题。我从这里来: 我有几个模板类,其中唯一的模板参数是“unsigned char const”。这些类构建一个数字,用基数B表示,基数B是模板参数。模板类派生自具体类: class general_digit { private: // THE UNIQUE DATA MEMBER unsigned char m_d; public: // ALL THE PUBLIC METHODS }; template<const unsigned char B>

这个问题。我从这里来:

我有几个模板类,其中唯一的模板参数是“unsigned char const”。这些类构建一个数字,用基数B表示,基数B是模板参数。模板类派生自具体类:

class general_digit {

private:

// THE UNIQUE DATA MEMBER

   unsigned char m_d;

public:

// ALL THE PUBLIC METHODS

};

template<const unsigned char B>

class digit : public general_digit { 

private:

// I DON'T ADD ANY DATA

public:

// ALL THE PUBLIC METHODS

};
这个问题。我想去的地方:


我正在使解析器/解释器成为一个先进的计算器,使用我们的数字类型。计算器的问题是,这些类型在运行时是必需的,而对于必需的变量,我无法从254种可能的类型中选择一种。有可能用程序编写代码,但我认为可能存在一个更令人满意的解决方案。

那么B的值在运行时会变化吗?什么是“254种可能的类型”?值B是数字的基数,B也是模板参数。在计算器运行时,用户需要一个任意基数的可变数字。让nradix表示基数的user变量:我不调用digit newdigit;。这就是我想要一个容器的原因,在这个容器中,我可以为每个索引找到适当类型的变量。254种类型是{digit,digit,…digit,digit},最大基数是无符号字符的最大值。这个命令能回答你的问题吗?。谢谢。在为给定的B值选择数字后,您想如何处理该数字?对它调用一个方法?创建一个将存储在某处的实例?我将尝试。我在用flex/bison做计算器。野牛要求每个终端都有这个?符号我按名称将一个类型附加到某个数据成员的%union中。当用户将d123B131数字123写入字母表{0,1,2,…,130}时,我必须识别类型并在映射中实例化适当的变量A,A是键,适当的变量是映射的值类型,对向量的间接引用。如果类型的数量很少,那就不会有问题了。但是可能的类型数是B的范围,这是0..255。后面的..作为一个函数只能返回一种类型,我有一个直接访问内存的端口。结果在端口a向量中,位置为特定类型。我不知道如何解决这个问题。谢谢