From My understanding, "virtual" keyword in inheritance says to the compiler like
If this base class appears again and again for multiple times in inheritance, than keep only one copy instead of creating duplicates.
For example, suppose you are studying in university and there are two or more departments are ready to give you their separate graduation certificates because you excel in all of them. But you actually need only one common certificate from the university no matter how many separate departments you excel in.
we can think Virtual inheritance as "Share on copy" rule.
In your example, since there is no diamond problem, writing "virtual" doesn’t change the behaviour.