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

Заголовочный файл или Механизм раздельной компиляции - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ исправить ошибки. СОРТИРОВКА ВЫЧЕРПЫВАНИЕМ http://www.cyberforum.ru/cpp-beginners/thread555181.html
нашла программу,должна работать ,но выбило много ошибок. Исправляла как могла, но все же некоторые ошибки просто не знаю как убрать. Помогите пожалуйста. вот программа#define NARRAY 8 /* array size */ #define NBUCKET 5 /* bucket size */ #define INTERVAL 10 /* bucket range */ struct Node { int data; struct Node *next; };
C++ разработка дин. структуры Помогите с дин. структурами, вообще никак не выходит:( Разработайте динамическую структуру для решения задачи. Даны целые числа p и q. Получить все делители числа q, взаимно простые с числом p. http://www.cyberforum.ru/cpp-beginners/thread555168.html
Reinterpret_cast C++
Не могу понять к чему тут этот каст и каким образом он влияет на результат. char zxc = ((*(reinterpret_cast<const char*>(&(todo == 0 ? length : (todo == 3 ? md: sec))) + cur_length_byte) & (1 << pos)) >> pos); result = 0 char qwe = (((todo == 0 ? length : (todo == 3 ? md: sec)) + cur_length_byte) & (1 << pos)) >> pos; result = 1
C++ Подправьте пожалуйста код.
#include "stdafx.h" #include "iostream" using namespace std; int main(){ int map; int grass = {1,"grass.jpg"}; // grass = проходимость , grass = путь до картинки for(int x = 0;x<10;x++){ for(int y = 0;y<10;y++){
C++ Как взять разность по модулю между двумя числами int? http://www.cyberforum.ru/cpp-beginners/thread555137.html
Суть в теме: "Как взять разность по модулю между двумя числами int?". Заранее спасибо :)
C++ Составить программу для подсчёта произведения элементов целочисленной прямоугольной таблицы Составить программу для подсчёта произведения элементов целочисленной прямоугольной таблицы Y, состоящей из p строк и k столбцов, сумма двух индексов которых есть число чётное. Использовать динамический массив. Помогите пожалуйста подробнее

Показать сообщение отдельно
Simyrg
3 / 3 / 0
Регистрация: 22.04.2012
Сообщений: 13

Заголовочный файл или Механизм раздельной компиляции - C++

22.04.2012, 16:27. Просмотров 3729. Ответов 5
Метки (Все метки)

Здравствуйте в данный момент я изучаю C++. Среда разработки Visual Studio 2010
Столкнулся с понятием заголовочный файл и из чистого альтруизма решил создать свою библиотеку которую в будущем собираюсь наполнять наиболее часто используемыми функциями. Но не суть.

У меня возникили следующие сложности:
Из определения я понял, что для того чтобы вынести в предкомпилируемый заголовок свою функцию необходимо:
1) создать два файла: один MyLib.h который содержит объявление некоторой функции и другой MyLib.cpp (насколько я понял совпадение имён необязательно) который уже содержит функцию целиком.
Например:
C++
1
2
3
4
5
6
7
//MyLib.h
#ifndef ch_MyLib
#define ch_MyLib
 
int myfunc(int&);
 
#endif ch_MyLib
C++
1
2
3
4
5
6
//MyLib.cpp
#include "MyLib.h" //вот  насчёт этого включения я не понял смысла, одни книги советуют включать другие молчат об этом
int myfunc(int& s) {
    s++;
    return s;   
}
Неважно какой исходный код я написал, это только пример для ясности.

2)В своём исходнике подключить заголовок (#include "MyLib.h") и, по идее, функция будет доступна.

Так вот я совершенно не представляю как заголовочный файл будет искать тело объявленной функции

Когда я по алгоритму описанному выше вынес свою функцию во внешний модуль и подключил в своём исходнике заголовок мне выдало такую вот ошибку
error LNK2019: ссылка на неразрешенный внешний символ (...) в функции _main
Через пару часов гугла и выпученных глаз я понял, что компилятор ругается по совершенно определённой причине - объявление функции он видит а вот тело нет. Собственно я с самого начала это и предпологал.

И вот вопрос. Как мне вынести функцию свою в предкомпилируемый заголовок чтобы я мог подключать её в любой своей программе указав в #include нужный заголовочный файл?

Желательно дать развёрнутый ответ, ато буду опять гуглить сидеть если что-то недопойму
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru