class Base
{
public:
virtual void func1()
{
std::cout<<"Base func1"<<std::endl;
}
//virtual destructor
};
class Derived : public Base
{
public:
virtual void func1()
{
std::cout<<"Derived Base func1"<<std::endl;
}
virtual void func2()
{
std::cout<<"Derived func2"<<std::endl;
}
};
int main()
{
Derived *d = new Derived;
delete d;
}
Я хочу знать, созданы ли два «vptr» для разрешения виртуальных функций, один в «базовом» классе, который будет унаследован в объекте производного класса для func1(), а другой в «производном» объекте для func2().
Derived
есть только один vptr. - person Daniel Langr   schedule 03.04.2019Derived
и мы предполагаем, что он соответствует стандарту, то стандарт не может требовать 2 vptr. - person Daniel Langr   schedule 03.04.2019