Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

Отделение интерфейса класса от реализации - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Прототип и функция http://www.cyberforum.ru/cpp-beginners/thread88765.html
Не могу решить задачу Напишите прототип и функцию, вычисляющщую количество четных и нечетных чисел в двумерном массиве. Помогите пож-ста!
C++ Иттераторы Никогда не пользовался, а теперь хочу разобраться. Запостите, пожалуйста ответы на вопросы: 1. Что такое иттераторы? 2. Как их делать? 3. Как ими пользоваться? 4. Каким образом при этом... http://www.cyberforum.ru/cpp-beginners/thread88735.html
C++ Не параллелипеидальный объёмный массив
Не знаю, где лучше разместить эту тему. В алгоритмах что ли? Или в c++? Подскажите как организовать массивы с декартовыми и криволинейными координатами в пределах тел сложной формы в качестве...
Проверка 3-ех примеров (Решать ничего не нужно) C++
Всем привет! =) У меня такая проблемка,кто сталкивался,или может решить,помогите пожалуйста =) Буду очень признателен! Итак,даны три задачи: 1) Даны натуральные числа n и m. Вычислить:...
C++ Структура. Работа с файлом. http://www.cyberforum.ru/cpp-beginners/thread88718.html
Создать структуру описывающую библиотеку: struct library { char book; //название книги char author; //автор int year; //год издания int pages; //число страниц float price; //цена };
C++ Перегрузка файлового ввода-вывода Здравствуйте! У меня вопрос такой вот: для файлового ввода-вывода сколько надо функций перегружать? столько хватит friend std::ostream & operator<<(std::ostream & os, const Order & o);... подробнее

Показать сообщение отдельно
Vourhey
Почетный модератор
6482 / 2257 / 123
Регистрация: 29.07.2006
Сообщений: 12,635
23.01.2010, 12:16
Не знаю, как точно это реализовано в VS, но предполагаю, что как-то так:
Gradecook.cpp подключает Gradecook.h. VS просто компилирует .cpp файлы в объектники. А так как, в нашем спп реализация методов класса линкер потом резолвит символьную таблицу подключая эти методы.
В консоли может примерно так:
Код
[Vourhey@localhost two]$ ll
total 20
-rwxrwxr-x. 1 Vourhey Vourhey 5399 2010-01-23 12:04 main
-rw-rw-r--. 1 Vourhey Vourhey   71 2010-01-23 11:22 main.cpp   использование класса
-rw-rw-r--. 1 Vourhey Vourhey   57 2010-01-23 11:03 one.cpp     реализация методов класса one
-rw-rw-r--. 1 Vourhey Vourhey   55 2010-01-23 11:13 one.h         объявление класса one
[Vourhey@localhost two]$ rm -f main 
[Vourhey@localhost two]$ 
[Vourhey@localhost two]$ 
[Vourhey@localhost two]$ g++ -I./ main.cpp -o main    //будет ошибка, так как символы не найдены
/tmp/ccFPZKT7.o: In function `main':
main.cpp:(.text+0x11): undefined reference to `one::one()'
main.cpp:(.text+0x1d): undefined reference to `one::two()'
collect2: ld returned 1 exit status
[Vourhey@localhost two]$ g++ -c -I./ one.cpp
[Vourhey@localhost two]$ g++ -I./ main.cpp -o main one.o     //отдаем ему объектник скомпиленый из класса
Достаточно знать, что методы есть, а во время линковки они подхватятся. Либо будет ошибка линкера По файлам проекта VS не составляет труда найти cpp-файл с реализацией методов класса. Если проект простой и у классов реализации не связано, то без разницы, где методы реализуются - собери объектники, подсунь линкеру он сам все найдет. В противном случае еще нужно учитывать порядок передачи. Все это в Makefile можно записать.
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru