Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.50/6: Рейтинг темы: голосов - 6, средняя оценка - 4.50
noname228
0 / 0 / 0
Регистрация: 01.06.2015
Сообщений: 8
#1

Компиляция и сборка многофайлового проекта

26.06.2015, 19:51. Просмотров 1019. Ответов 4
Метки нет (Все метки)

Допустим, у меня есть такие файлы.

SuperClass h - объявление, SuperClass cpp - реализация
SubClass h - объявление, SubClass cpp - реализация. Этот класс унаследован от SuperClass.

main.cpp

Я все раздельно прокомпилировал, получил 3 файла, SuperClass.o SubClass.o main.o, а потом все в единый файл programm.o.
В SuperClass я решил убрать некоторые приватные методы/поля, поменял реализацию некоторых публичных методов (но не менял имени) и добавил несколько публичным методов, ввел к этому классу еще один SuperSuperClass - от которого теперь наследуется SuperClass.

Потом скомпилировал SuperClass и SuperSuperClass и снова соединил все файлы компновщиком.
Все прекрасно работает, правильно? То что main.o/SubClass.o я не перекомпилировал, а там указано старое определение SuperClass и нет никакой информации об обновленной иерархии наследования, ничего страшного?

Все может плохо работать, если я удалю/изменю имя публичных/протектед методов, которые могут использоваться в других файлах, и все?

Добавлено через 40 минут
А вдруг, я еще захочу добавить в SuperClass дополнительный виртуальный метод? Не перекомпилировав остальные файлы.

Добавлено через 9 минут
Я просто хочу проверить, не свихнулся ли я.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.06.2015, 19:51
Ответы с готовыми решениями:

Сборка многофайлового приложения: ошибка LNK2005
Привет! Помогите пожалуйста разобраться со организацией исходников. Структура...

Работа многофайлового проекта
С++ позволяет создавать многофайловые проект. Это повышает производительность,...

Функция класса многофайлового проекта
Всем доброго времени суток! Создал проект с классом, сделал *.h для функций,...

Создание многофайлового проекта в Borland 5.02
Кто знает как создать многофайловый проект в среде Borland 5.02

Ошибка при компиляции многофайлового проекта
Добрый вечер. Возникает ошибка при компиляции проекта, состоящего из 3-х...

4
Справлюсь
23 / 23 / 14
Регистрация: 24.07.2014
Сообщений: 209
26.06.2015, 19:55 #2
вы так пробовали делать?
0
noname228
0 / 0 / 0
Регистрация: 01.06.2015
Сообщений: 8
27.06.2015, 11:14  [ТС] #3
Да.

Добавлено через 14 часов 37 минут
Неужели никто не ответит?
0
hoggy
Заблокирован
Эксперт С++
27.06.2015, 12:42 #4
Цитата Сообщение от noname228 Посмотреть сообщение
Неужели никто не ответит?
если бы изменили лишь реализацию какой то функции,
которая находится в библиотеке - беды бы не было.

но вы нарушили ODR:
в двух единицах трансляций находится один и тот же класс,
но при этом там он имеет разное строение (разный размер).

здесь трудно не прострелить себе голову.
0
Croessmah
27.06.2015, 12:44     Компиляция и сборка многофайлового проекта
  #5

Не по теме:

Цитата Сообщение от hoggy Посмотреть сообщение
здесь трудно не прострелить себе голову.
причем через ногу :)

0
27.06.2015, 12:44
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.06.2015, 12:44
Привет! Вот еще темы с ответами:

Как разобраться со сборкой многофайлового проекта
В теории я считал что понимаю как происходят подключения файлов, их сборка (те...

Ошибка при сборке многофайлового проекта: "невозможно преобразовать "int" в "const golf"
Сделал многофайловую программу программу, вот она: //golf.h #include...

Компиляция проекта
Столкнулся с проблемой при переносе построенного решения с одной машины на...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru