начал делать проект в VS17 (консольное win32). Он мне дал stdafx, когда я прочитал, что это такое, решил попробовать реализовать с предкомпиляцией, чтобы было. Решил проверить работоспособность одного из конструкторов. Он мне дает ошибку LNK2109 "ссылка на неразрешенный внешний символ". stackoverflow не помог. Нужна помощь.
-все лежит в проекте. (это точно)
-включения заголовков вроде правильно раскидал. (это неточно)
-очищал и пересобирал проект много раз
ничего не работает.
VS и предкомпиляция
Модераторы: Hawk, Romeo, Absurd, DeeJayC, WinMain
Вот все файлы.
- Вложения
-
- ConsoleApplicati.zip
- (5.83 КБ) 32 скачивания
- Romeo
- Сообщения: 3126
- Зарегистрирован: 02 мар 2004, 17:25
- Откуда: Крым, Севастополь
- Контактная информация:
При чём тут stdafx.h? Проблема в другом. Для того, чтобы компилятор мог сгенерировать тела методов класса matrix, они (тела) должны быть доступны из того места, где происходит инстанцирование шаблона. Иными словами, то что расположено в matrix.cpp, должно быть расположено в matrix.h. Спорим, когда у тебя всё располагалось в одном файле, то всё работало? 
Вообще рекомендую почитать подробнее про шаблоны. Гугл в помощь.

Вообще рекомендую почитать подробнее про шаблоны. Гугл в помощь.
Entites should not be multiplied beyond necessity @ William Occam
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.
Так это шаблоны мне жизнь портят. Что их выносить нельзя, не знал. Получается мне .cpp вообще не нужен или с хедером его оставить?
Спасибо.
Спасибо.
- Romeo
- Сообщения: 3126
- Зарегистрирован: 02 мар 2004, 17:25
- Откуда: Крым, Севастополь
- Контактная информация:
Так как хедер кроме объявления шаблона больше ничего не содержит, то смысла разделять шаблонный класс на два файла нет никакого. Вот если бы хедер содержал что-то ещё, и это что-то могло потребоваться в другом месте проекта, где шаблонный класс не будет использоваться, вот тогда разделять можно. В таком случае файлу с определениями методов шаблонного класса частенько дают расширение hxx и инклюдят его только в тех местах, где есть инстанцирование шаблона.
Entites should not be multiplied beyond necessity @ William Occam
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.