КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Явные объявления конструкторов
Пространство имен Шаблоны Дружественные функции Дружественные фукции имеют доступ ко всем защищенным и приватным членам данных внешних классов. Объявление их имеет вид: FriendreturnType <имя функции> ( <параметры> ). Оператор вызова функции имеет вид: <имя функции> (& <имя экземпляра класса с функцией> ). Шаблоны позволяют создавать семейство функций или классов: Template< список шаблонных типов > { <объявление> }; Шаблон функций задает образец объявлений перегруженных функций (типы аргументов и результатов работы функции могут меняться при ее различных вызовах) (п. 6.2.7). Фактические типы должны быть известны во время компиляции. Пример шаблона функцииmaxim (нахождение наибольшего числа из двух чисел, все аргументы и результат имеют переменный тип T): template <class T> T maxim (T x,T y) // шаблон функции maxim { return (x > y)? x: y;} // тело функции maxim int main(int argc, char **argv) // основная функция проверки шаблона { int i=2; int j=maxim(i,0); // аргументы функции maxim типа int float a=3.2,b=8.6;float m=maxim(a,b); //аргументы функции maxim типа float cout << j << endl; cout << m <<endl; getch(); return 0; // вывод результатов } // конец функции Шаблон классов задает образец определений семейства классов. Пример шаблона Vector ‑ генератор классов одномерных массивов. template <class T> class Vector; Механизм пространства внешних (глобальных) имен позволяет разбить приложение на отдельные пространства, в каждом из которых можно определить свои глобальные идентификаторы. Последние не зависят от других пространств. Каждое пространство начинается со строки: namespace <идентификатор подсистемы> { [<объявления>] }. Существуют три способа доступа к элементам подсистем: 1. Явная в виде <имя подсистемы> :: <переменная, функция> (first::nds). 2. Доступ ко всем элементам в виде using namespace:: <имя подсистемы> (using namespace:: first). 3. Объявление нового идентификатора в локальном пространстве имен в виде: using:: <новое имя> (using:: nds;). Пример: namespace first { int i=10, j=11; } // объявление пространства first int main(int argc, char **argv) // основная функция тестирования { cout << first::i << endl; // вывод переменной i=10 из пространства first using namespace:: first; // доступ ко всем переменным пространства first cout << j << endl; // вывод переменной j=11 из пространства first getch(); return 0; // задержка и выход из функции } // конец тела основной функции Если при объявлении конструктора указать слово explicit, то он требует, чтобы значения в операторах присваивания были преобразованы к тому классовому типу, объектам которого эти значения присваиваются. Пример объявления класс X и его двух конструкторов: class X {public: explicit X (int); explicit X (const char*, int=0);}; // класс X void F(X prm) { X a=X(1); X b=X(«строка»,0); a=X(2); } // функция F
Дата добавления: 2014-12-08; Просмотров: 454; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |