Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Влад Колодка
0 / 0 / 4
Регистрация: 10.11.2013
Сообщений: 29
#1

Error LNK1120, error LNK2019, error LNK2028, queue - C++

18.07.2015, 23:02. Просмотров 438. Ответов 2
Метки нет (Все метки)

C++
1
2
// свойство класса Parser
queue<elem*>* postfix = new queue<elem*>;
C++
1
2
// строка, из-за которой происходит ошибка
postfix->push(createElement(0, result));
C++
1
2
3
4
5
6
7
8
9
// метод класса Parser
elem* createElement(short type, int data){
    elem * tmp = new elem;
 
    tmp->type = type;
    tmp->data = data;
 
    return tmp;
}
Список ошибок
Кликните здесь для просмотра всего текста

Ошибка 5 error LNK1120: f:\documents\visual studio 2013\Projects\practic3\Debug\practic3.exe 1
Ошибка 4 error LNK2019: f:\documents\visual studio 2013\Projects\practic3\Parser.obj
Ошибка 3 error LNK2028: f:\documents\visual studio 2013\Projects\practic3\Parser.obj
Предупреждение 1 warning C4244: +=: преобразование "double" в "int", возможна потеря данных f:\documents\visual studio 2013\Projects\practic3\Parser.cpp 79
Предупреждение 2 warning C4715: Stack<int>::get: значение возвращается не при всех путях выполнения f:\documents\visual studio 2013\projects\practic3\stack.h 42



Полный листинг кода

Parser.h
Кликните здесь для просмотра всего текста
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
#pragma once
#include <queue>
#include "Stack.h"
 
using std::queue;
 
struct elem{
    short type; // 0 - число, 1 - оператор
    int data; // если оператор: +:1, -:2, *:3, /:4 
};
 
class Parser
{
private:
    bool parseNumber;
    queue<elem*>* postfix = new queue<elem*>;
    Stack<int>* operators;
    Stack<int>* number;
public:
    Parser(char*, int);
    bool action(int);
    void endNum();
    elem* createElement(short, int);
};


Parser.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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
#include "Parser.h"
#include <math.h>
 
int matrix[6][7] = {
    {4, 1, 1, 1, 1, 1, 5},
    {2, 2, 2, 1, 1, 1, 2},
    {2, 2, 2, 1, 1, 1, 2},
    {2, 2, 2, 2, 2, 1, 2},
    {2, 2, 2, 2, 2, 1, 2},
    {5, 1, 1, 1, 1, 1, 3}
};
 
Parser::Parser(char* string, int size)
{
    operators = new Stack<int>(4);
    number = new Stack<int>(3);
    
    for (int i = 0; i < size; i++){ // перебор строки
        switch (string[i]){
        case '=':
            endNum();
            action(0);
            break;
        case '+':
            endNum();
            action(1);
            break;
        case '-':
            endNum();
            action(2);
            break;
        case '*':
            endNum();
            action(3);
            break;
        case '/':
            endNum();
            action(4);
            break;
        case '(':
            endNum();
            action(5);
            break;
        case ')':
            endNum();
            action(6);
            break;
        default: // число
            number->push((int) string[i] - '0');
            break;
        }
    }
}
bool Parser::action(int action){
    int previous = operators->get();
    switch (matrix[previous][action]){
    case 1:
        operators->push(action);
        break;
    case 2:
        postfix->push(createElement(1, operators->pop()));
        break;
    case 3:
        operators->pop();
        break;
    case 5:
        return false;
        break;
    }
    return true;
}
void Parser::endNum(){
    if (!number->getSize()) return;
 
    int size = number->getSize();
    int result = 0;
 
    for (int i = 0; i < size; i++)
        result += number->pop() * pow(10, i);
    
    postfix->push(createElement(0, result));
}
elem* createElement(short type, int data){
    elem * tmp = new elem;
 
    tmp->type = type;
    tmp->data = data;
 
    return tmp;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.07.2015, 23:02
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Error LNK1120, error LNK2019, error LNK2028, queue (C++):

Error LNK2028, LNK2019, LNK1120: 2 неразрешенных внешних элементов
Всем привет. #include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;iomanip&gt;...

Error LNK2019 и fatal error LNK1120
Копаюсь в гугле уже часа 2. Не понимаю, в чем проблема. Вроде нигде ошибок в...

Error LNK1120, Error LNK2019
Здравствуйте . У меня проблема с кодом . #include &quot;stdafx.h&quot; #include...

Error LNK2019 и LNK1120
Форумчане, помогите кто чем может. изучать язык только начал, поэтому куча...

Ошибка error LNK2019 & LNK1120 и md5()
Добавил поддержку md5(), код с сайта...

Исправить ошибку в WxDev-C++: Error with debugging process: GDB Error: error, No source file named main.cpp
Здравствуйте товарищи! Новенький я в си, установил wxDev-C++, скомпилировал,...

2
ct0r
Игогошка!
1784 / 686 / 43
Регистрация: 19.08.2012
Сообщений: 1,323
Завершенные тесты: 1
18.07.2015, 23:11 #2
Цитата Сообщение от Влад Колодка Посмотреть сообщение
elem* createElement(short type, int data){
Тебе не кажется, что ты тут что-то пропустил?
1
Влад Колодка
0 / 0 / 4
Регистрация: 10.11.2013
Сообщений: 29
18.07.2015, 23:18  [ТС] #3
Спасибо, заработало)
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.07.2015, 23:18
Привет! Вот еще темы с решениями:

error lnk2028 unresolved token extern c
Здравствуйте. При компиляции такого примера// Test6.cpp : main project file. ...

Ошибка в тестовом примере: "Error 1 error C2143: syntax error : missing ';' before 'if'"
#include&lt;iostream&gt; using namespace std; int main(){ int x, a = 0, b = 10;...

error LNK1120
#include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;conio.h&gt; #include &lt;vector&gt;...

Visual c++ Ошибка 1 error LNK2028: ссылка на неразрешенную лексему (0A00004B)
//------------------------------------------------------------------------------...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru