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

Не понимаю логику обработки кода, разбитого на файлы - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ объекты С++ http://www.cyberforum.ru/cpp-beginners/thread1059790.html
Движение закрашенного прямоугольника по треугольному контуру с изменением цвета при изменении направления движения. #include <conio.h> #include <cmath> #include <stdio.h> #include <iostream> #include <stdlib.h> #include <windows.h> #include <ctime> #include <time.h>
C++ Как увеличить размер стека? Есть быстрая сортировка - но выдает ошибку Stack overflow на массиве 100,7 Но работает на 100-4-0-1-2-3 В чем проблема, подскажите пожалуйста // QuickSort.cpp : Defines the entry point for the console application. // #include "stdafx.h" #include <iostream> #include <stdlib.h> /* srand, rand */ #include <time.h> /* time */ http://www.cyberforum.ru/cpp-beginners/thread1059759.html
C++ Использование .Net Dll в неуправляемом приложении
Реализую функуwb. со следующим контрактом void Aaa(int* p); сответственно на C# реализую: public static void Aaa( ref int p) { MessageBox(syring.Format("A: {0}")); p=new int {1,2,3}; } После преобразования dll из .Net в win32 формат пробую запустить: rundll32 myDll.dll, Aaa
C++ Объясните пожалуйста участок кода
Узнал что это ассоциативный массив for (map<std::string,int>::iterator p = count.begin(); p != count.end(); p++) cout << p->first<<'\t'<<p->second<<'\n';
C++ Программа для работы с окнами http://www.cyberforum.ru/cpp-beginners/thread1059745.html
Здравствуйте . Я пока в с++ новичок .Прошу помощи : подскажите , с какой программы лучше начинать работать в плане создания окон , кнопок ( то есть создавать не просто консольное приложение , как в VS, а уже более функциональное ) ? Буду благодарен за советы. Заранее спасибо.
C++ Для чего при инициализации переменной писать на конце числа первую букву типа? Например, long long a=123456789123344LL чем будет отличаться от long long a=123456789123344 ? подробнее

Показать сообщение отдельно
Mr. Hat
2 / 2 / 0
Регистрация: 17.02.2012
Сообщений: 68

Не понимаю логику обработки кода, разбитого на файлы - C++

29.12.2013, 09:27. Просмотров 208. Ответов 3
Метки (Все метки)

Ситуация примерно такая. Есть файл file1.h, в котором объявлена функция:

C++
1
template<class T> T from_string(const std::string& s);
Ее определение находится в файле file2.cpp, который подключен к проекту (в QtCreator), но ни в каких инклудах не фигурирует. Классы из этих двух файлов в других частях проекта (в которые file1.h включен через цепочку инклудов) работают нормально, но если я пытаюсь использовать эту функцию (напрмер, для T = double), компилятор ее не пропускает:

error: undefined reference to 'double from_string<double>(std::string const&)'

Чтобы все работало, приходится в каждом файле, где используется эта функция, писать ее определение:
C++
1
2
3
4
5
6
7
template<class T> T from_string(const std::string& s)
{
    std::istringstream is(s);
    T t;
    if(!(is >> t)) return T();
    return t;
}
Как сделать так, чтобы определение было одно на весь проект?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru