Virtual A virtual function uses runtime lookup Also known as dynamic dispatch It is slower and uses more memory On mono we have: 1.6 times as long as a normal call class is 4 bytes larger But it lets you use OO techniques, ie: BuzzerAlarm b; Alarm &a = b; a.turn_on();