3.11. Оператори
Операторите са най-малките
изпълними единици в една С++ програма. Те се разделят посредством точка и
запетая; най-простата форма на оператор е празен или нулев оператор. Празният
оператор изглежда така:
; // null statement
Този оператор е
полезен в случаите, когато синтаксисът на езика изисква наличието на оператор,
но не и логиката на програмата. Това понякога се случва при операторите за цикъл
while и for. Например,
while ( *string++ = *inBuf++ ); // null
statement
Присъствието на ненужен празен оператор няма да предизвика
грешка по време на компилация. (На автора веднъж се случи да използува
компилатор на ALGOL68 в Колумбийския университет, който отбелязваше всеки празен
оператор като фатална грешка. Представете си, че започвате от 3 ч. следобед да
чакате 40-минутната компилация на програмата си, за да получите странично
канцилиране, следствие на точка и запетая).
int val;; // additional null
statement
Това е съвкупност от два оператора: декларативен оператор int
val и празен оператор.
Декларация завършваща с точка и запетая е
декларативен оператор. Това е единствения оператор, който може да бъде записван
извън функция. Израз, след който има точка и запетая е
оператор-израз.
Съставни оператори и блокове
Някои
синтактични конструкции на езика допускат записването само на един оператор.
Логиката на програмата, обаче,може да изисква изпълнението на два или повече
оператора. В тези случаи може да се използува съставен оператор.
Например,
if ( account.balance - withdrawal < 0 ) {
// compound
statement
issueNotice( account.number );
chargePenalty( account.number
);
}
Съставният оператор представлява последователност от оператори,
затворена във фигурни скоби. Съставният оператор се разглежда като неделима
единица и може да се появява навсякъде в програмата, където може да бъде
поставен единичен оператор. Не е необходимо да се записва точка и запетая след
съставен оператор.
Съставен оператор, който съдържа един или повече
декларативни оператори, се нарича блок. Блоковете се разглеждат подробно в
Раздел 3.10 при обсъждането на областите на действие.