|
Въпреки че С++ е надмножество на С, все пак съществуват извесни разлики между двата езика и някой от тях е добреда се знаят още от самото начало. Преди да прадалжа на татак ще отделя малко време да ги разгледаме.
Първо, в С ако функцията f1() не према никакви параметри, а връщания резултат е от типа char, то то нейният прототип ще изглежда по следния начин. char f1(); С++ се различава от С++ по начина на задаване на празен списак с параметри. Ако горният прототип се появи във С програма, това означава че нищо не се казва на спиаъка с параметритена фунццията. В С++ това означава че функцията няма никакви параметри. Поради тази причина в предишните параметри за декларирането на празен списък от параметри не се използваше явлението void.(Употребата на voidза декларирането на празен списак от параметри не е недопустима тя е просто излишна). Повечето С++ програмисти преследжат ефективноста с голямо осърдие, то е много малко вероятно да жидите void да се използва в тъкъв контекст.Запомнете, че в С++тези две декларации са еквивалентни: char f1(); char f1(void); Друга малка разлика между С и С++ е, че в С++всички функции трябва да имат прототип. Спомнете си че в С прототипите са препорачителни, но не и задалжителни. В С++ те са задалжителни. Прототипа на една член функция съдържащ се в тялото на класа, играе и ролята на основен прототип, така че не е необходим и друг отделен прототип. Третата разлика между С и С++ е, че в С++, ако една функция е декларирана като връща резултат, ти трябва да върне резултат. Т.е. ако типът на връщания резултат на дадена функция е различен отvoid, всяка конструкция return в тялото на функцията трябва да връща стойност. В С една не-void функция не е задължена да връща резултат. В С ако не укажете изрично типа на връщания резултат на една функция, се приема че той е целочислен. С++ премахва това предварително - трябва ясно да декларирате връщания тип на всички функции.
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||









