c++ - 从 C++ 中的两个类继承并插入到列表中

标签 c++

关于将继承自两个类的对象插入到列表中,以下代码是否有问题?

class A
{
}

class B
{
}

class C : public A, public B
{

}

C *myObj = new C();
std::list<A*> myList;
myList.push_front(myObj);

创建类型 A 的列表并插入类型 B 的一部分的类型 C 的对象是否有问题? 我知道这段代码可以编译,但我很担心内存问题。 如果这是一个问题,我还有什么其他选择可以解决这个问题?

最佳答案

只要列表通过引用或指针存储数据并且析构函数是虚拟的,就可以了。

基本问题是不允许将 C 存储到 A 的变量中, 但您可以将其存储到 A& 中或 A* .所以A a = C()就像将 C 存储到 list<A> 中一样糟糕或 vector<A> .这将导致 slicing

关于c++ - 从 C++ 中的两个类继承并插入到列表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13729860/

相关文章:

C++。似乎不接受用户的输入

c++ - 使用 emcc 将 C++ 代码编译为 WASM 的问题

c++ - 使用循环在 C++ 中移动 Sprite (SFML)

javascript - webextension native 应用程序 c++ hello world

c++ - Base dtor 应该有一个定义吗?

c++ - 我正在使用 gdb 调用一个简单的 C++ 函数,但它失败了

c++ - 如何优化 C++ 中有关 CPU 和内存的大量映射插入

c++ - 如何从随机值范围中删除某个元素?

c++ - 使用 2 个指针反转链表

c++ - 在参数中传递 QCoreApplication