Аватар для Egor138
32 / 13 / 3
Регистрация: 10.08.2012
Сообщений: 619
Записей в блоге: 2

Ссылка на неразрешенную лексему при работе с шаблоном

27.10.2013, 13:13. Показов 2875. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Никак не могу понять с чем связанна эта ошибка

C++
1
2
3
4
5
error LNK2028: ссылка на неразрешенную лексему (0A0003B6) "void __cdecl Connect<class Element,class F,void (__thiscall F::*)(void)>(class Element *,class Event *,class F *,void (__thiscall F::*)(void))" (??$Connect@VElement@@VF@@P82@AEXXZ@@$$FYAXPAVElement@@PAVEvent@@PAVF@@P82@AEXXZ@Z) в функции "int __cdecl main(void)" (?main@@$$HYAHXZ)
 
error LNK2019: ссылка на неразрешенный внешний символ "void __cdecl Connect<class Element,class F,void (__thiscall F::*)(void)>(class Element *,class Event *,class F *,void (__thiscall F::*)(void))" (??$Connect@VElement@@VF@@P82@AEXXZ@@$$FYAXPAVElement@@PAVEvent@@PAVF@@P82@AEXXZ@Z) в функции "int __cdecl main(void)" (?main@@$$HYAHXZ)
 
fatal error LNK1120: 2 неразрешенных внешних элементов
Вот код

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
#ifndef ELEM_H
#define ELEM_H
#include <vector>
#include "Delegate.h"
using std::vector;
 
struct IDeleg {};
 
template< class Reciv_Type >
struct  Deleg : public IDeleg
{
    Deleg(Reciv_Type* rec, Delegate* del) : deleg(del), reciv(rec) {}
    Delegate* deleg;
    Reciv_Type* reciv;
};
 
 
class Event
{
public:
    Event() {}
 
    template< class Reciv_Type >
    void push_back(Deleg<Reciv_Type> *deleg);
 
    template< class Reciv_Type >
    void operator()(Reciv_Type *reciv);
 
private:
    vector<IDeleg*> Contain;
};
 
template< class Reciv_Type, class Trans_Type, class B >
void Connect(Reciv_Type* reciv, Event* signal, Trans_Type* trans, B slot);
 
extern Event sh;
 
#endif
CPP файл

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#include "Event.h"
Event sh;
 
template< class Reciv_Type >
void Event::push_back(Deleg<Reciv_Type> *deleg)
{
    Contain.push_back(deleg);
}
 
template< class Reciv_Type >
void Event::operator()(Reciv_Type *reciv)
{
    for(size_t i=0; i<Contain.size(); ++i)
    {
        if(reciv == Containt[i]->reciv) 
            Containv[i]->deleg();
    }
}
 
template< class Reciv_Type, class Trans_Type, class B >
void Connect(Reciv_Type* reciv, Event* signal, Trans_Type* trans, B slot)
{
    Delegate *deleg = new Delegate;
    deleg->Connect(trans, slot);
    Deleg<Reciv_Type> *temp = new Deleg<Reciv_Type>(reciv, deleg);
 
    signal->push_back(temp);
}
И вызов функции из main

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
class F
{
public:
    void Fun() {}
};
 
void main()
{
    Element el;
    F obj;
 
    Connect(&el, &sh, &obj, &F::Fun);
    system("pause >void");
}
Помогите пожалуйства разобраться, все перепробовал
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
27.10.2013, 13:13
Ответы с готовыми решениями:

Ссылка на неразрешенную лексему
Доброе время суток, у меня возникла такая проблема // ------ Построение начато: проект: Praktika, Конфигурация: Debug Win32 ------ ...

Ошибка в коде - Ссылка на неразрешенную лексему
Есть код, есть ошибка, в чем проблема понять не могу. 1&gt;АЛГОРИТМ.obj : error LNK2028: ссылка на неразрешенную лексему (0A000399)...

Visual c++ Ошибка 1 error LNK2028: ссылка на неразрешенную лексему (0A00004B)
//-------------------------------------------------------------------------------------- // Урок 1. Создание устройств Direct3D11....

4
Каратель
Эксперт С++
6610 / 4029 / 401
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
27.10.2013, 13:16
реализация шаблона должна быть в хедере
1
 Аватар для Egor138
32 / 13 / 3
Регистрация: 10.08.2012
Сообщений: 619
Записей в блоге: 2
27.10.2013, 13:50  [ТС]
Цитата Сообщение от Jupiter Посмотреть сообщение
реализация шаблона должна быть в хедере
Реализация всех шаблонных методов или функций?
0
46 / 46 / 18
Регистрация: 25.10.2011
Сообщений: 183
27.10.2013, 13:51
Шаблонные функции нужно всегда объявлять и реализовывать в одном файле.
1
Каратель
Эксперт С++
6610 / 4029 / 401
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
27.10.2013, 13:57
Цитата Сообщение от Egor138 Посмотреть сообщение
Реализация всех шаблонных методов или функций?
и того и другого
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
27.10.2013, 13:57
Помогаю со студенческими работами здесь

Ссылка на неразрешённую лексему, что это?
Да, что? Иногда бывает такая ошибка. Методом научного тыка не хочется исправлять, а хочется понять что это такое Вот здесь сделана...

student.obj : error LNK2028: ссылка на неразрешенную лексему (0A00001A)
&gt;ResourceCompile: 1&gt; Для всех выходных данных обновления не требуется. 1&gt;student.obj : error LNK2028: ссылка на неразрешенную лексему...

Error LNK2028: ссылка на неразрешенную лексему (0A00000C) "extern "C"
Короче - я супер новичек в opengl. Неумею подключать библиотеки походу, ну впрочем вот код - // 01_opengl.cpp: главный файл проекта. ...

PhpWord: в чём ошибка при работе с шаблоном?
Нужно создавать документы по шаблону. Если создавать документ на пустом месте, всё проходит нормально, но тут не происходит ни сохранения...

Ссылка на объект не указывает на экземпляр объекта при работе с процессами
Здравствуйте, столкнулся с этой проблемой недавно, уже всю голову сломал. Суть: Хочу сделать чтобы процессы сравнивались с процессами из...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

Новые блоги и статьи
Вопросы на собеседованиях по микросервисам
ArchitectMsa 27.03.2025
Работодатели ищут не просто разработчиков, знающих базовые концепции, а специалистов, разбирающихся в тонкостях масштабирования, отказоустойчивости и производительности. Сейчас на первый план выходят. . .
Взаимодействие Python с REST API
py-thonny 27.03.2025
REST API - это архитектурный стиль взаимодействия компонентов распределённого приложения в сети. Python располагает функциональным набором инструментов для работы с REST API и основная библиотека для. . .
sshd restrictions, ssh access limitations
jigi33 26.03.2025
sshd restrictions | ssh access limitations рестрикции доступа на сервер sshd статья: https:/ / www. golinuxcloud. com/ restrict-allow-ssh-certain-users-groups-rhel
Компиляция C++ с Clang API
NullReferenced 24.03.2025
Компиляторы обычно воспринимаются как черные ящики, которые превращают исходный код в исполняемые файлы. Мы запускаем компилятор командой в терминале, и вуаля — получаем бинарник. Но что если нужно. . .
Многопоточное программировани­е в C#: Класс Thread
UnmanagedCoder 24.03.2025
Когда запускается приложение на компьютере, операционная система создаёт для него процесс - виртуальное адресное пространство. В C# этот процесс изначально получает один поток выполнения — главный. . .
SwiftUI Data Flow: Передача данных между представлениями
mobDevWorks 23.03.2025
При первом знакомстве со SwiftUI кажется, что фреймворк предлагает избыточное количество механизмов для передачи данных: @State, @Binding, @StateObject, @ObservedObject, @EnvironmentObject и другие. . . .
Моки в Java: Сравниваем Mockito, EasyMock, JMockit
Javaican 23.03.2025
Как протестировать класс, который зависит от других сложных компонентов, таких как базы данных, веб-сервисы или другие классы, с которыми и так непросто работать в тестовом окружении? Для этого и. . .
Архитектурные паттерны микросервисов: ТОП-10 шаблонов
ArchitectMsa 22.03.2025
Популярность микросервисной архитектуры объясняется множеством важных преимуществ. К примеру, она позволяет командам разработчиков работать независимо друг от друга, используя различные технологии и. . .
Оптимизация рендеринга в Unity: Сортировка миллиона спрайтов
GameUnited 22.03.2025
Помните, когда наличие сотни спрайтов в игре приводило к существенному падению производительности? Время таких ограничений уходит в прошлое. Сегодня геймдев сталкивается с задачами совершенно иного. . .
Образование и практика
Igor3D 21.03.2025
Добрый день А вот каково качество/ эффективность ВУЗовского образования? Аналитическая геометрия изучается в первом семестре и считается довольно легким курсом, что вполне справедливо. Ну хорошо,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru