- C ▁does ▁not ▁provide ▁a ▁standard ▁library ▁per ▁se , ▁but ▁in ▁most ▁places ▁where ▁Object ive - C ▁is ▁used , ▁it ▁is ▁used ▁with ▁an ▁Open Step - like ▁library ▁such ▁as ▁OP EN ST EP , ▁C ocoa , ▁or ▁GNU step , ▁which ▁provides ▁functionality ▁similar ▁to ▁C ++ ' s ▁standard ▁library . ▁ ▁One ▁notable ▁difference ▁is ▁that ▁Object ive - C ▁provides ▁runtime ▁support ▁for ▁reflect ive ▁features , ▁whereas ▁C ++ ▁adds ▁only ▁a ▁small ▁amount ▁of ▁runtime ▁support ▁to ▁C . ▁In ▁Object ive - C , ▁an ▁object ▁can ▁be ▁quer ied ▁about ▁its ▁own ▁properties , ▁e . g ., ▁whether ▁it ▁will ▁respond ▁to ▁a ▁certain ▁message . ▁In ▁C ++, ▁this ▁is ▁not ▁possible ▁without ▁the ▁use ▁of ▁external ▁libraries . ▁ ▁The ▁use ▁of ▁reflection ▁is ▁part ▁of ▁the ▁wider ▁distinction ▁between ▁dynamic ▁( run - time ) ▁features ▁and ▁static ▁( compile - time ) ▁features ▁of ▁a ▁language . ▁Although ▁Object ive - C ▁and ▁C ++ ▁each ▁employ ▁a ▁mix ▁of ▁both ▁features , ▁Object ive - C ▁is ▁decided ly ▁ge ared ▁toward ▁run - time ▁dec isions ▁while ▁C ++ ▁is ▁ge ared ▁toward ▁compile - time ▁dec isions . ▁The ▁t ension ▁between ▁dynamic ▁and ▁static ▁programming ▁involves ▁many ▁of ▁the ▁classic ▁trade - offs ▁in ▁programming : ▁dynamic ▁features ▁add ▁flex ibility , ▁static ▁features ▁add ▁speed ▁and ▁type ▁checking . ▁ ▁Gener ic ▁programming ▁and ▁met ap ro gram ming