Бьерн Страуструп - Язык программирования С++. Главы 5-8
Страница 59. Литералы



7.4 Литералы

 Для классов нельзя определить литеральные значения, подобному
 тому как 1.2 и 12e3 являются литералами типа double. Однако,
 для интерпретации значений классов могут использоваться вместо
 функций-членов литералы основных типов. Общим средством для
 построения таких значений служат конструкторы с единственным
 параметром. Если конструктор достаточно простой и реализуется
 подстановкой, вполне разумно представлять его вызов как
 литерал. Например, с учетом описания класса complex в <complex.h>
 в выражении zz1*3+zz2*complex(1,2) произойдет два вызова функций,
 а не пять. Две операции * приведут к вызову функции, а операция
 + и вызовы конструктора для построения complex(3) и complex(1,2)
 будут реализованы подстановкой.

 
« Предыдущая статья   Следующая статья »