![]() |
Модераторы: Daevaorn |
![]() ![]() ![]() |
|
Alca |
|
||||||||||||||||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3993 Регистрация: 14.6.2006 Репутация: 7 Всего: 50 |
Как правильно собрать файлы проекта?
1. Модули с функциями: MyStrFunc.cpp //функции не являются методами каких-либо классов
MyFSOStrFunc.cpp //функции не являются методами каких-либо классов
2. Классы: CIni.h
CIni.cpp
CPerform.h
CPerform.cpp
3. Главный модуль: uMain.h uMain.cpp
Результат:
Ключевая фраза здесь: "already defined". ![]() Это сообщение отредактировал(а) Alca - 26.11.2008, 10:55 |
||||||||||||||||
|
|||||||||||||||||
jonie |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5613 Регистрация: 21.8.2005 Где: Владимир Репутация: 15 Всего: 118 |
заглушки против двойных включений стоят на h файлах ?
-------------------- Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет... |
|||
|
||||
Alca |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3993 Регистрация: 14.6.2006 Репутация: 7 Всего: 50 |
Стоят:
Добавлено через 13 минут и 4 секунды Как правильно подключить класс к проекту? |
|||
|
||||
586 |
|
||||||||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2243 Регистрация: 8.5.2006 Репутация: 10 Всего: 146 |
Нужно указывать .h-файлы, в которых описаны прототипы функций. MyStrFunc.h
MyFSOStrFunc.h
CIni.cpp
CPerform.cpp
|
||||||||
|
|||||||||
Alca |
|
||||||||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3993 Регистрация: 14.6.2006 Репутация: 7 Всего: 50 |
586, сделал как ты написал:
CPerform.cpp
CXString.cpp (выше был как MyStrFunc.cpp)
Добавляю след. функцию (без шаблонов) и все компилться:
Почему не работает с шаблоном? P.S. Эта функция sTypeToStr вызывается не один раз и с разными параметрами. Это сообщение отредактировал(а) Alca - 26.11.2008, 13:15 |
||||||||
|
|||||||||
586 |
|
||||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2243 Регистрация: 8.5.2006 Репутация: 10 Всего: 146 |
Реализуй шаблонную функцию в .h-файле.
Или сделай вызов этой функции в CXString.cpp для double.
другого выхода я не вижу...
С шаблоном не работает, потому что реализации для double нету в объектном файле CXString.obj... Не будет же компилятор делать реализацию шаблонных функций для всех существующих типов. Для типа int он сделал реализацию, потому что эта функция вызывается где-то в CXString.cpp. Когда компилируется CXString.cpp, компилятор не знает о других .cpp-файлах. |
||||
|
|||||
Alca |
|
||||||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3993 Регистрация: 14.6.2006 Репутация: 7 Всего: 50 |
Типа вместо прототипа:
написать:
в CXString.h? да? Это сообщение отредактировал(а) Alca - 26.11.2008, 14:02 |
||||||
|
|||||||
586 |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2243 Регистрация: 8.5.2006 Репутация: 10 Всего: 146 |
да.
|
|||
|
||||
Alca |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3993 Регистрация: 14.6.2006 Репутация: 7 Всего: 50 |
Спасибо 586, выручил.
![]() Я тебе там крестик поставил. P.S. Действительно эта функция вызывалась для int. ![]() Это сообщение отредактировал(а) Alca - 26.11.2008, 14:13 |
|||
|
||||
![]() ![]() ![]() |
Правила форума "С++:Общие вопросы" | |
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |