Программирование >>  Расширенная версия языка c++ 

1 ... 6 7 8 [ 9 ] 10 11 12 ... 227


ция fl() не имеет параметров (и возвращаем аг), ее прототип будет выглядеть следующим образом:

I . . char fl(void); .......

В C++ слово void не обязательно. Поэтому в C++ прототип обычно пишется так: .- ..

chaO ; . ,. -., . . - , , ,

C++ отличается от С способом задания пустого списка параметров. Если бы предыдущий прототип имел место в программе С, то это бы означало, что о параметрах функции сказать ничего нельзя. А в C++ это означает, что у функции нет параметров. Поэтому в предыдущих примерах для исчерпывающего обозначения пустого списка параметров слово void не использовалось. (Использование void для обозначения пустого списка параметров не ошибочно, скорее, оно излишне. Поскольку большинство

программистов C++ гонятся за эффективностью с почти религиозным рвением, вы никогда не увидите void в таких случаях.) Запомните, в C++ следующие два объявления эквивалентны:

int fl() ; V ; . . .

int fl (void) ; > . . : . г - .

а Другим небольшим отличием между С и C++ является то, что в программах C++ все функции должны иметь прототипы ните, в С прототипы функций рекомендуются, но технически они не обязательны, а в C++ прототипы необходимы. Как показывают примеры из предыдущего раздела, содержащийся в классе прототип функции-члена действует так же, как ее обычный прототип, и никакого иного прототипа не

требуется.

□ Третьим отличием между С и C++ являетсо. что если в C++ функция имеет отличный от void тип возвращаемого значения, то инструкция return внутри этой функции должна содержать значение данного типа. В языке С функции с отличным от void типом возвращаемого значения

фактически не требуется возвращать что-либо. Если значения нет, то

функция возвращает неопределенное значение.

В если тип функцией значения явно не задан, функция

по умолчанию возвращает значение целого типа. В C++ такого правила

нет. Следовательно, необходимо явно объявлять тип возвращаемого значения всех функций.

а Следующим отличием между С и C++ является то, что в программах C++ вы можете выбирать место для объявления локальных переменных. В С локальные переменные могут объявляться только в начале блока, перед любой инструкцией действия . В C++ локальные переменные могут



объявляться в любом месте программы. Одним из преимуществ такого подхода является то, что локальные переменные для предотвращения нежелательных побочных эффектов можно объявлять рядом с местом их первого использования.

И последнее. Дж хранения значений булева типа (истина или ложь) в С++ определен тип данных bool. В С++ таюке определены ключевые слова true и false - единственные значения, которыми могут быть данные типа bool. Б С++ результатом выполнения операторов отношения и логических операторов явжются значения типа bool, и направление развития любой условной инструкции должно определяться относительно значения типа bool. Хотя такое отличие от С на первый взгляд кажется значительным, на самом деле это не так. Фактически оно совершенно прозрачно и вот почему: как вы знаете, в С любое ненулевое значение явжется истинным, а нулевое - ложным. Б С++ это положение сохраняется, поскольку при использовании таких значений в булевом выражении ненулевое значение автоматически преобразуется в true, а нулевое - в false. Правильно и обратное: true преобразуется в 1, a false в 0, если значение типа bool оказывается в целом выражении. Добавление в C++ данных типа bool усиливает контроль типа и дает возможность различать данные булева и целого типов. Естественно, что использование данных булева типа не обязательно, скорее оно просто удобно.

Прим!

ерр:>

1. В программах С, при отсутствии в командной строке аргументов, функция main() обычно объявляется так:

int main(void) .-.lo:: .*

Однако в C++ такое использование слова void избыточно и необязательно.

2. Эта короткая программа C++ не будет компилироваться, поскольку у функции sum() нет прототипа:

Эта программа не будет компилироваться

#include <iostream>

using namespace std; int

int a,b,c;

cout << Введите два числа: ; cin a b; c=sum(a, b);

cou Сумм с;



return 0;

Этой функции необходим прототип . , , , . .

sum(int а, int b)

{ .. .

return a+b;

3. Эта короткая амма иллюстрирует тот факт, что локальные переменные можно объявить в любом месте блока:

ttinclude <iostream> using namespace std;

int main ( )

int i; локальная переменная ленная в начале блока

cou Введите число: ; cin i;

расчет факториала

int переменные мленные перед инструкциями

действия

fo =1; j-) fact=fact * j ;

cou Факториал fact;

return 0;

:} . .

Хотя объявление переменных j и fact рядом с местом их первого использования в этом коротком примере и не слишком тляет, в больших функциях такая возможность может обеспечить программе ясность и предотвратить

нежелательные побочные эффекты.

4. В следующей Программе создается булева переменная outcome и ей присваивается значение false. Затем эта переменная используется в инструкции if.

#include<iostream>

using namespace std; -

int mainO

outcome; outcome = false;

cout истина ;

else cout ложь ;



1 ... 6 7 8 [ 9 ] 10 11 12 ... 227

© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки.
Яндекс.Метрика