c++的多重继承MI问题?

多重继承时,将某个

class Person{
    ......
    .......
};
class asd : virtual public Person
{
    ......
    ......
};

这里Person 作为被继承的类,那么Person类是否意味必须要被声明
为虚基类,即至少包含一个纯虚函数,是吗????

不需要

#include <iostream>

using namespace std;

class Person{
    public:
    void a() {}
};
class asd : virtual public Person
{
    public:
    void a() {}
};

int main() {
    cout << "hello " << endl;
    return 0;
}

这代码通过编译