Стефан Дэвис - С++ для чайников .
- Название:С++ для чайников .
- Автор:
- Жанр:
- Издательство:Издательский дом Вильямс. Компьютерное издательство Диалектика
- Год:2007
- Город:Москва
- ISBN:0-7645-6852-3, 978-5-8459-0723-3
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
Стефан Дэвис - С++ для чайников . краткое содержание
1
empty-line
4
С++ для чайников . - читать онлайн бесплатно полную версию (весь текст целиком)
Интервал:
Закладка:
cout << "Student = " << s.display( ) << endl ;
GraduateStudent gs( "Greg U. Waite" , 5678 ) ;
cout << "Student = " << gs.display( ) << endl ;
/* Пауза для того, чтобы посмотреть на результат работы программы */
system( "PAUSE" ) ; return 0 ;
}
_________________
263 стр. Глава 22. Разложение классов
Приложение включает заголовочные файлы Student.h и GraduateStudent.h , что даёт ему доступ к обоим рассмотренным классам.
Вы можете возразить, что включение GraduateStudent.h автоматически приводит к включению Student.h , однако не стоит полагаться на это — если вы хотите использовать какой-то класс, лучше включить соответствующий заголовочный файл независимо от других. Использование описанной ранее конструкции с #ifndef позволит избежать повторного включения заголовочного файла.
Заметим, что представленный модуль не является частью пространства имён Schools , так что при обращении функции main( ) к классу Student С++ не знает, где именно искать этот класс.
В связи с этим при обращении к классу следует использовать его полное имя, дабы избежать возможных неоднозначностей — т.е. имя, состоящее из имени пространства и имени класса: Schools::Student . Другой способ заключается в указании в начале модуля, какое именно пространство имён подразумевается программистом — так, инструкция
usingSchools::GraduateStudent ;
говорит о том, что далее все упоминания GraduateStudent относятся к пространству имён Schools .
Программист может получить такой же доступ ко всем членам пространства имён сразу, воспользовавшись командой
using namespaceSchools ;
Вот версия функции main( ) , которая использует эту команду и работает аналогично предыдущей функции main( ).
using namespace Schools ;
int main( int nArgc , char* pszArgs[ ] )
{
Schools::Student s( "Sophie Moore" , 1234 ) ;
cout << "Student = " << s.display( ) << endl ;
GraduateStudent gs( "Greg U. Waite" , 5678 ) ;
cout << "Student = " << gs.display( ) << endl ;
/* Пауза для того, чтобы посмотреть на результат работы программы */
system( "PAUSE" ) ; return 0 ;
}
«Использование в данной книге инструкцииusing namespace std ; связано с тем, что модули, составляющие стандартную библиотеку С++, входят в пространство имёнstd .»
[ Советы ]
Файл проекта...264
Полный ожиданий, я открываю файл SeparatedMain.срр в компиляторе и запускаю сборку приложения. Модуль компилируется без ошибок, но компоновка не выполняется. С++ не знает, что за класс Student . Итак, нам надо каким-то образом сообщить компилятору, что кроме SeparatedMain.срр ему нужно использовать файлы GraduateStudent.срр и Student.срр . В большинстве сред С++, включая Dev-C++ и Visual С++ .NET, это делается при помощи файла проекта .
Dev-C++ и Visual С++ .NET имеют собственные форматы файла проекта. Здесь мы рассмотрим, как работать с файлом проекта в Dev-C++.
_________________
264 стр. Часть 4. Наследование
Создание файла проекта в Dev-C++...265
Для создания файла проекта Dev-C++ выполните следующие действия.
1. Выберите команду меню Файл => Создать => Проект ( File => New => Project ). Выберите в диалоговом окне Console Application и введите имя SeparateModules ( рис. 22.6 ).
Рис. 22.6. Выбор типа нового проекта
2. Щёлкните на кнопке ОК.
Dev-C++ откроет окно сохранения файла.
3. Выберите каталог, в котором должен быть сохранён проект.
4. Удалите main.срр из проекта, поскольку у вас уже есть модуль main( ).
5. Выберите команду меню Проект => Удалить из проекта ( Project => Remove From Project ).
6. Выберите main.срр и щёлкните на кнопке ОК.
7. Скопируйте файлы SeparatedMain.cpp, GraduateStudent.срр, Student.срр, Student.h и GraduateStudent.h в рабочую папку ( если они ещё не находятся там ).
8. Выберите команду меню Проект => Добавить к проекту ( Project => Add to Project ).
_________________
265 стр. Глава 22. Разложение классов
9. Выберите все исходные модули и щёлкните на кнопке ОК.
10. Выберите команду меню Выполнить => Перестроить всё ( Execute => Rebuild All ) для компиляции модулей проекта и создания выполнимой программы.
11. Щёлкните на вкладке Классы ( Classes ) в левом окне, чтобы увидеть описания всех классов программы ( рис. 22.7 ).
«Убедитесь, что просмотр классов корректно настроен.»
[ Советы ]
Рис. 22.7. Описание классов программы
12. Выберите команду меню Сервис => Параметры редактора ( Tools => Editor options ) и щёлкните на вкладке Обзор классов ( Class browsing ).
13. Включите опцию Включить обзор классов ( Enable class browser ) и другие опции, показанные на рис. 22.8.
Обратите внимание, как выводится информация о классах — при включённой опции вывода наследованных членов у класса GraduateStudent показаны две функции display( ) .
_________________
266 стр. Часть 4. Наследование
Рис. 22.8. Типы информации о классах, доступные для отображения
14. Выберите первую функцию display( ) в списке и щёлкните на маленькой пиктограммке слева от неё.
При этом в окне редактора вы увидите файл Student.срр , причём курсор окажется на функции display( ) . Выбор второй функции display( ) перенесёт нас к этой функции в файле GraduateStudent.срр .
Свойства проекта настроены по умолчанию. Для их изменения вы можете выполнить следующее.
15. Выберите команду меню Проект => Параметры проекта ( Project => Project Options ).
Например, вы можете выбрать вкладку настроек компилятора и отключить генерацию отладочной информации или изменить другие настройки.
Я думаю, вы убедитесь, что разбиение программы на отдельные исходные файлы облегчает её редактирование, внесение изменений и отладку.
_________________
267 стр. Глава 22. Разложение классов
ОГЛАВЛЕНИЕ
СОДЕРЖАНИЕ
Глава 23. ОПЕРАТОР ПРИСВОЕНИЯ...271
Глава 24. ИСПОЛЬЗОВАНИЕ ПОТОКОВ ВВОДА-ВЫВОДА...277
Читать дальшеИнтервал:
Закладка: