2015-10-09 25 views
5

Vikipedi'de C++ operatörü listesi için bakarken buldum bir makale hakkında operator synonyms:C++ neden operatör eş anlamlılarına ihtiyaç duyar?

C++ tanımlar [6] operatörlerin bir dizi takma ad olarak hareket için anahtar kelimeleri: ve (& &), bitand (&), ve_eq (& =) veya (||), bitor (|), veya_eq (| =), xor (^), xor_eq (^ =), değil (!), Not_eq (! =) Ve compl (~). Bunlar, aynı operatörün farklı bir adla değil, ilgili operatörün adı (karakter dizgisi) için basit bir simge değiştirmeleriyle değiştirdikleri noktalama işaretleriyle tam olarak aynı şekilde kullanılabilir. Bu, ifadelerin (a> 0 ve bayrak) ve (a> 0 & & bayrağının) özdeş anlamları olduğu anlamına gelir. Aynı zamanda, örneğin, bitand anahtar kelimesinin sadece bit ve operatörün değil, aynı zamanda operatörün adresini değiştirmek için kullanılabileceği ve hatta referans türlerini belirtmek için kullanılabileceği anlamına gelir (örn. Int bitand ref = n) . ISO C belirtimi, bu anahtar kelimeler için iso646.h başlık dosyasında önişlemci makroları olarak ödenek ayırır. C ile uyumluluk için C++, başlığı hiçbir etkisi olmayan başlık ciso646'yı sağlar.

O zaman merak ediyorum: Neden bu operator synonyms'a ihtiyacımız var? Birisi bazı kullanım durumu sağlarsa iyi olur.

+5

Standart düzende bu sembollere sahip olmayan klavyeleri kullanan kişilere hitap edebilir. – SBI

+0

Eh, biri için ben gerçekten mantıklı ya da yerine mantıklı ya da demek istediğim açıkça olabilir! – AndyG

cevap

İlgili konular