Константы классового типа определить невозможно в том смысле, в каком 1.2 и 12e3 являются константой типа double.
Вместо них, однако, часто можно использовать константы основных типов, если их реализация обеспечивается с помощью функций членов.
Общий аппарат для этого дают конструкторы, получающие один параметр.
Когда конструкторы просты и подставляются inline, имеет смысл рассмотреть в качестве константы вызов конструктора.
Если, например, в есть описание класса comlpex, то выражение zz1*3+zz2*comlpex(1,2) даст два вызова функций, а не пять.
К двум вызовам функций приведут две операции *, а операция + и конструктор, к которому обращаются для создания comlpex(3) и comlpex(1,2), будут расширены inline.
8 8 8
| |