gpt4 book ai didi

c++ - 可以容纳多种类型数据的数据结构

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:25:48 52 4
gpt4 key购买 nike

正如标题所说,我正在寻找某种数据结构,它可以让我在其中存储我当时需要的任何类型的类。例如:

Foo *foo = new Foo();
Bar *bar = new Bar();
someContainer.push_back( foo );
someContainer.push_back( bar );
someContainer.access( 0 )->doFooStuff();
someContainer.access( 1 )->doBarStuff();

理想情况下,正如我在那里展示的那样,它还允许我访问内容并使用它们的功能/等等。
我想要其中之一,因为我正在尝试创建一个“不可见”的内存管理系统,它只需要一个类来继承我的内存管理器类,一切都会自动运行。
这是我希望代码看起来像的示例:

template< class T >
class MemoryManaged
{
MemoryManaged()
{
container.push_back( this );
}
void *operator new()
{
// new would probably be overloaded for reference counting etc.
}
void operator delete( void *object )
{
// delete would most definitely overloaded
}
T &operator=( T &other )
{
// = overloaded for reference counting and pointer management
}

static SomeContainer container;
}

class SomeClass : public MemoryManaged< SomeClass >
{
// some kind of stuff for the class to work
};
class AnotherClass : public MemoryManaged< AnotherClass >
{
// more stuff!
};

我希望我的代码有助于阐明我到底想做什么。如果有人知道某种已经构建的数据结构可以让我这样做,那就太棒了。否则,我目前正在构建某种链表类的蹒跚僵尸,它使用模板化节点将任何类型的类链接到任何其他类型的类。我仍然不知道如何让它发挥作用,我希望自己能省去弄清楚如何让它发挥作用所需的鲜血、汗水和眼泪(以及头发)。

最佳答案

为您的所有多种类型创建一个公共(public)基类。让数据结构保留基类类型的指针。

关于c++ - 可以容纳多种类型数据的数据结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3200441/

52 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com