|
Программирование >> Расширенная версия языка c++
ция 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 ложь ;
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |