Создать глобальный объект того же типа с тем же именем в другом модуле нам не удастся
Создать глобальный объект того же типа с тем же именем в другом модуле нам не удастся — компоновщик сообщит о повторном определении.
Далее входим в функцию main() и вызываем статический метод:
Static<double>::print();
Программа выдаст на экран
155 0
Выводится значение поля static double t, присвоенное параметру по умолчанию, и количество объектов типа Static<double>, равное нулю — это естественно, так как объектов мы не создавали. Далее вызывается тот же метод, но с явно заданным параметром 234. На экран выводится
234 0 4
Количество объектов по-прежнему равно нулю.
Создаем локальный объект типа Static<double> с именем г, он перекрывает глобальный объект г типа Static<long>. Тем не менее статические поля count и t заново не создаются. При вызове метода Static<double>::printO; на экран выводится
234 1
Это означает, что используется значение того же поля t, которое было изменено в предыдущем вызове, и существует один объект.
Далее выполняются два вызова:
Первый выводит на экран числа 0 и 1, которые соответствуют значению поля static long t и количеству объектов типа Static<long>. Второй вызов выводит 4321 и 1 соответственно.
Далее программа демонстрирует вызов статического метода для конкретного объекта: локального типа Static<double> и глобального типа Static<long>. Тем не менее выводятся те значения поля t, которые были присвоены ранее.
И наконец, демонстрируется вывод и изменение значения статического поля t для специализации int: сначала значение, присвоенное при определении, а затем новое.
Теперь добавим в проект модуль с функцией (листинг 13.18), объявив в модуле main.cpp ее прототип, и вызовем ее в главной функции.
Опубликовал Kest
February 10 2014 22:16:59 ·
0 Комментариев ·
3077 Прочтений ·
• Не нашли ответ на свой вопрос? Тогда задайте вопрос в комментариях или на форуме! •
Комментарии
Нет комментариев.
Добавить комментарий
Рейтинги
Рейтинг доступен только для пользователей.
Пожалуйста, залогиньтесь или зарегистрируйтесь для голосования.
Нет данных для оценки.
Гость
Вы не зарегистрированны? Нажмите здесь для регистрации.