Однако, для этого может использоваться lypedel' typedef int * int_ptr; p=int_plr(x); Конструктор с одним аргументом фактически представляет собой преобразование из типа аргумента к типу конструируемого класса. string(const char *р) { len=strlen(p); s=new char[len+l]; strcpy(s,p); } Таким образом, возможны два рабочих варианта кода: string s; char * logo=” Hello”; s=string(logo); // выполняет преобразование, затем присвоение и s=logo; // неявный вызов преобразования Может быть выполнено с помощью определения специальной функции преобразования внутри класса string следующим образом: operator char * () { return s; } Общая форма записи такой функции-члена operator типО {•••} Правило Использование одновременно конструктора и перегрузку операции приведения невозможно. Так как, операции преобразования не имеют ни явных аргументов, ни возвращаемого значения, то они не могут быть перегружены. Может быть несколько операторов преобразования для различных типов. Операции преобразования наследуются и могут быть виртуальными. Статические компоненты класса Описатель static в C++ имеет различное назначение в зависимости от контекста, в котором он применен.П еременные и функции, объявленные вне класса и вне тела функции с описателем static, имеют область действия, ограниченную файлом, в котором они объявлены. Переменные, объявленные как static внутри функции, видимы только внутри этой функции, но сохраняют свои значения после выхода из функции и инициализируются только при первом обращении к функции. Компоненты класса также могут объявляться с описателем static, такие компоненты - данные являются общими для всех экземпляров объектов этого класса и
RkJQdWJsaXNoZXIy MTExODQxMg==