5.2. Инструкции объявленияВ С++ определение объекта, например int ival; рассматривается как инструкция объявления (хотя в данном случае более правильно было бы сказать определения). Ее можно использовать в любом месте программы, где разрешено употреблять инструкции. В следующем примере объявления помечены комментарием //#n, где n – порядковый номер. #include <fstream> #include <string> #include <vector> int main() { string fileName; // #1 cout << "Введите имя файла: "; Программа содержит семь инструкций объявления и восемь определений объектов.
Объявления действуют локально; переменная объявляется непосредственно перед
первым использованием объекта.
Инструкция объявления может состоять из одного или более определений. Например, в нашей программе мы определяем два итератора вектора в одной инструкции: // одна инструкция объявления, // определяющая сразу два объекта vector<string>::iterator iter = text.begin(), lend = text.end(); Эквивалентная пара, определяющая по одному объекту, выглядит так: vector<string>::iterator iter = text.begin(); vector<string>::iterator lend = text.end(); Хотя определение одного или нескольких объектов в одном предложении является скорее вопросом вкуса, в некоторых случаях – например, при одновременном определении объектов, указателей и ссылок – это может спровоцировать появление ошибок. Скажем, в следующей инструкции не совсем ясно, действительно ли программист хотел определить указатель и объект или просто забыл поставить звездочку перед вторым идентификатором (используемые имена переменных наводят на второе предположение): // то ли хотел определить программист? string *ptrl, ptr2; Эквивалентная пара инструкций не позволит допустить такую ошибку: string *ptr1; string *ptr2; В наших примерах мы обычно группируем определения объектов в инструкции по сходству употребления. Например, в следующей паре int aCnt=0, eCnt=0, iCnt=0, oCnt=0, uCnt=0; int charCnt=0, wordCnt=0; первая инструкция объявляет пять очень похожих по назначению объектов – счетчиков пяти гласных латинского алфавита. Счетчики для подсчета символов и слов определяются во второй инструкции. Хотя такой подход нам кажется естественным и удобным, нет никаких причин считать его хоть чем-то лучше других. Упражнение 5.1Представьте себе, что вы являетесь руководителем программного проекта и хотите, чтобы применение инструкций объявления было унифицировано. Сформулируйте правила использования объявлений объектов для вашего проекта. Упражнение 5.2Представьте себе, что вы только что присоединились к проекту из предыдущего упражнения. Вы совершенно не согласны не только с конкретными правилами использования инструкций объявления, но и вообще с навязыванием каких-либо правил для этого. Объясните свою позицию. Назад ВпередСодержание |
Нет комментариев. Оставить комментарий: |