Jaky je rozdil vim. Co nechapu je, proc by struktura mela kdy podle nekterych nazoru umet vic nez ukladani hodnot.
Protože teď máme divný hybrid mezi původním pascalským recordem, který umí akorát ukládání hodnot, a třídou, která toho umí mnoho. A za tímco ani jedna z krajních poloh mě neuráží, tak pro hybrid nevidím žádný smysl. To ať už je record plnoprávná obdoba třídy se vším všudy, akorát že se vytváří i ničí automaticky přímo na zásobníku. Ne že budu mít něco, co se chová skoro stejně jako třída, ale má to nesmyslné rozdíly typu "instance se vytvoří sama, ale nezavolá se na ní konstruktor, takže není nainicializovaná", "instance se zničí sama, ale neexistuje pro ni destruktor" (oboje řeší teď poslední úprava do 10.3), "instance může mít metody, ale tyto metody se nemohou overridovat", atd. Jakkoliv nemohu říci, že bych jazyk C považoval za vzor hodný následování, tak zrovna tohle má udělané dobře hned od zavedení objektů.
Jinak psal Barry Kelly, ze jednim z problemu dedicnosti recordu by byl (mimo virtualnich metod) ve ztrate hodnot poli pri prirazovani (tedy napr. i pri predavani zaznamu parametrum). Napr. v tomto pseudokodu:
Já v tom právě žádný problém nevidím. Ani z pohledu uživatele, ani z pohledu kompilátoru. A pokud by to někde problém byl, od toho je kopírovací konstruktor a/nebo přiřazovací operátor, aby vyhodil výjimku, že takhle tedy ne.