Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/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+中数据类型的动态更改+;?_C++ - Fatal编程技术网

C++ c+中数据类型的动态更改+;?

C++ c+中数据类型的动态更改+;?,c++,C++,我正在开发一个带有协议缓冲区的客户机-服务器原型。我有两个主要要求来了解协议缓冲区的效率,这些要求如下 数组数据元素数量的动态更改(在运行时) 结构或单个变量的数据类型的动态更改(在运行时) 你知道C++如何处理运行时变化吗?< /P> < P>这个答案只包含一般的指导方针,我可能会投票否决:< /P> 使用链表(或任何其他可用作FIFO的数据结构),而不是数组 定义一个名为DataType的泛型类,其中包含一组对所有不同数据类型通用的接口例程 对于您拥有的每个数据类型,定义一个从类数据类型

我正在开发一个带有协议缓冲区的客户机-服务器原型。我有两个主要要求来了解协议缓冲区的效率,这些要求如下

  • 数组数据元素数量的动态更改(在运行时)
  • 结构或单个变量的数据类型的动态更改(在运行时)

你知道C++如何处理运行时变化吗?< /P> < P>这个答案只包含一般的指导方针,我可能会投票否决:< /P>

  • 使用链表(或任何其他可用作FIFO的数据结构),而不是数组

  • 定义一个名为DataType的泛型类,其中包含一组对所有不同数据类型通用的接口例程

  • 对于您拥有的每个数据类型,定义一个从类数据类型继承的特定类

  • 在链表中的每个节点中,存储一个指向数据类型实例的指针;无论何时添加新条目,都要为其中一个数据类型类创建一个新实例,并将新条目的数据类型指针设置为指向该实例

  • 确保类DataType中的析构函数是虚拟的,即
    virtual~DataType()

  • 注:上述指南假设您在advanced中定义的不同数据类型的数量是有限的

    您知道C++如何处理运行时更改吗?< /P> 没有。在运行时,C++没有任何改变代码< >结构> <代码>或<代码>类<代码>的定义。


    但是,根据您的需要,您可以使用现有的C++数据结构,如“代码> STD::MAP< /Cord>”来实现自己的数据容器,其成员可以在运行时发生更改。

    C++没有,因此在运行时不能更改类型。但是你可能,想看看.@ JoachimPileborg:用虚拟<代码> WriteToPBuffer < /COD>函数的动态多态可能比Booo::任何。更合适。@本·沃伊特:到目前为止,无论我做了什么,所有的事情都是静态定义的,现在我需要在运行时做一些改变。我对C++运行时更改能力没有很强的了解。寻找专家回答他们如何处理它?如果你能证明使用指针链表优先于指针数组/向量是合理的,我不会投你反对票。正如我所说,一般准则。。。我的意思是OP使用动态FIFO而不是恒定大小的数组(在上面的答案中添加了这一点)。