Předpokládám, že to čisté C, coby mladý jazyk, byl úlet.
Ale s tím C++ pozor. To se na x86 dos/win (o win se v souvislosti s WinBase602 bavíme) opravdu prosazovalo velmi, velmi, pomalu. První náznaky se objevily teprve počátkem 90 let a to byl akorát tak class místo struct a možná, možná, overloaded operátory.
Další zlom byl někdy kolem 93-94, kdy už to bylo mírně lepší, sem tam i počátky template, ale stejně dost špatné. Až někdy kolem 96-97 se to rozjelo a sjednotilo, že byl kód u těch C++ novinek +- kompatibilní.
Pokud se pamatuji, některé první pokusné implementace classu (asi dělané interně jako precompiler) např. mívaly seznam virtuálních funkcí jako plný seznam (všech) pointerů za daty struct. Až později si to compilery začaly zvládat hlídat dle typu classu a dávaly jen jediný pointer na tabulku společnou pro daný typ. Nebo třeba Borland si pro win udělal své vlastní rozšíření pro zpracování messages (pokud si vzpomínám, za názvem virtuální funkce v classu se udělalo =[XXX] kde xxx bylo int číslo zprávy které si dal navíc k tabulce vitruálních funkcí, pěkné, pohodlné, ale nekompatibilní a mělo potíže s typovou kontrolou) a až později /95+/ to nahradil klasickými RESPONSE_TABLE pomocí define a templates.