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

Класс: объявление и реализация - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Перегрузка преобразования http://www.cyberforum.ru/cpp-beginners/thread681444.html
Как перегрузить в классе явное преобразование? Что бы он корректно воспринимал строки вида: A a; B b = B(a);
C++ Сортировка за указанным направлением Отсортировать матрицу (порядка NxM) в порядке увеличения за данным направлением... Надеюсь смысл ясен) http://www.cyberforum.ru/cpp-beginners/thread681440.html
Подсчитать число элементов матрицы, кратных трем C++
Как составить такую программу: Подсчитать число элементов матрицы Q (5х7), кратных трем.
C++ получить из массива нечетные значения
не могу додуматься как записать в условии я записал массив, вывожу его , а в условии мне нужно записать что число массива делится на само себя и на единицу без остатка - как мне это написать ? )...
C++ Неразрешенный внешний символ http://www.cyberforum.ru/cpp-beginners/thread681437.html
Здравствуйте!Возникла проблема с классами Вот вообщем мой класс : WorldEdit.cpp #include "WorldEdit.h" #include "Mouse.h" #include <iostream> #include <HGE\hgesprite.h> extern HGE *hge; Mouse...
C++ Одномерный массив Товарищи программеры подскажите, где косяк, желательно с кратким пояснением, токо начал изучать, хочу разобраться. Программа компилируется но с ошибками и сумму считается неправильно. int... подробнее

Показать сообщение отдельно
Kuzia domovenok
2050 / 1895 / 173
Регистрация: 25.03.2012
Сообщений: 6,516
Записей в блоге: 1
27.10.2012, 03:02
Цитата Сообщение от Kgfq Посмотреть сообщение
Croessmah, нет, вы не поняли. По-любому .h включается в мэйне. И точно так же по-любому оно включается в .cpp. Разве получится не двойное включение?
Теперь понял вопрос. Ты думаешь, что при сборке проекта из нескольких файлов, cpp файлы просто "суммируются". Нет, ты не прав. Почитай как происходит компиляция, линковка и.т.п.

Коротко: файлы компилируются независимо друг от друга. Для успешной компиляции файла main, использующего функции из другого файла, например void CColor::operator(),
совершенно не обязательно прибавлять к main.cpp текст с реализацией функции CColor::operator(),
Достаточно написать в начале файла одну строчку - объявление этой функции (в нашем случае класса с этой функцией).
При этом компилятор просто проверит "правильность грамматики" (что типы аргументов и возвращаемого значения функции подходят), а связь с куском программы с реализацией этой функции произойдёт уже после компиляции. Этим займётся linker, линковщик.

Видишь! Ты создаёшь проект из нескольких файлов.
В начале каждого файла или объявляешь прототипы функций и классов из внешних файлов,
или обычно(хоть и не всегда) объявления выносятся в .h файл,
вот он то как раз напрямую пришивается к тексту программы в данном cpp файле.
Далее совершенно не беспокоишься, что функции в другом файле, спокойно вызываешь их. СРР-файлы при компиляции не "суммируются", они просто свяжутся позже.
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.