Operanzii trebuie să aibă tipuri compatibile, cu excepția tipurilor întregi și reale, care pot fi comparate una cu cealaltă.
Aplicați operațiunile <, <=,>,> = la indicii are sens numai dacă ambii operanzi indică elementele aceleiași matrice.
Operațiile == și! = Pot fi aplicate la pointeri către orice obiecte. În acest caz, aceștia se vor întoarce la adevărat și respectiv fals, numai dacă indicatorii indică același obiect.
Ar trebui să fie avertizat împotriva unei greșeli destul de frecvente: utilizarea accidentală în loc de funcționarea echivalenței (==) operațiunea de atribuire (=). De exemplu, dacă înlocuiți greșit operatorul
atunci aceasta nu va fi privită ca o eroare de sintaxă. Faptul este că în C ++ orice expresie care are un anumit sens poate fi folosită în afirmații condiționale, în special, dacă. Dacă valoarea expresiei este 0, atunci este tratată ca fiind falsă. Orice altă valoare este tratată ca fiind adevărată. Prin urmare, rezultatul operației A = 2 va fi interpretată ca fiind adevărată și indiferent de ceea ce valoare este egală cu A pentru a îndeplini acest operator eronate în cazul în care o declarație condiție va fi îndeplinită întotdeauna. În plus, această eroare va duce la o modificare neautorizată a valorii lui A.
Din fericire, C ++ Builder compilator detectează astfel de neînțelegeri și scris operatorului în cazul în care operatorul de atribuire, în orice caz, face remarca: «Posibil incorecte de atribuire» (cesiune ar putea fi incorecți). Aceasta nu este o greșeală, ci doar o remarcă. Deci, dacă nu vă acordați atenție, petreceți mult timp în căutarea unei erori în program.
Nu ignorați un singur comentariu de la compilator fără a analiza textul și pentru a găsi motivul care a cauzat remarca. Acesta este unul dintre angajamentele de a construi software fiabil.