C++ 如何在向量中存储多个派生类而无需切片
但我所期望的是C++ 如何在向量中存储多个派生类而无需切片,c++,c++11,C++,C++11,但我所期望的是 Base func() Base func() 如何将派生类推入基类向量而不进行切片? 如果没有办法解决这个问题,有没有等效的方法将多个派生类存储到一个类似数组的对象中?没有发生切片。您需要在Base中使func虚拟: Derived A func() Derived B func() virtualvoid func() { cout没有发生切片。您需要在Base中使func虚拟: Derived A func() Derived B func() virtualvoid
Base func()
Base func()
如何将派生类推入基类向量而不进行切片?
如果没有办法解决这个问题,有没有等效的方法将多个派生类存储到一个类似数组的对象中?没有发生切片。您需要在
Base
中使func
虚拟:
Derived A func()
Derived B func()
virtualvoid func()
{
cout没有发生切片。您需要在Base
中使func
虚拟:
Derived A func()
Derived B func()
virtualvoid func()
{
无法在基类中将func()设为虚拟
virtual void func()
{
cout << "Base func()" << endl;
}
类基
{
公众:
虚空函数()
{
无法在基类中将func()设为虚拟
virtual void func()
{
cout << "Base func()" << endl;
}
类基
{
公众:
虚空函数()
{
cout你应该使用
下面是它的工作原理示例:
虚函数
class Base
{
public :
virtual void func()
{
cout << "Base func()" << endl;
}
};
虚拟函数.cpp
#pragma once
class Base {
public:
virtual void virtual_func(); // virtual function.
void non_virtual_func(); // non-virtual function.
};
class Derived : public Base {
public:
void virtual_func(); // virtual function.
void non_virtual_func(); // non-virtual function.
};
输出应为:
派生::虚拟函数()
Base::非虚拟函数()
派生::虚拟函数()
派生::应该使用的非虚拟函数()
下面是它的工作原理示例:
虚函数
class Base
{
public :
virtual void func()
{
cout << "Base func()" << endl;
}
};
虚拟函数.cpp
#pragma once
class Base {
public:
virtual void virtual_func(); // virtual function.
void non_virtual_func(); // non-virtual function.
};
class Derived : public Base {
public:
void virtual_func(); // virtual function.
void non_virtual_func(); // non-virtual function.
};
输出应为:
派生::虚拟函数()
Base::非虚拟函数()
派生::虚拟函数()
派生::非虚拟函数()