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

Ссылка на не разрешнный внешний символ - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ поиск элемента в массиве из файла http://www.cyberforum.ru/cpp-beginners/thread618261.html
Здравствуйте! Такая задача (с++): нужно вывести на экран элемент, находящийся в файле, в котором записан столбец с названием угла и множество значений при различных отсчетах по дальности. Выглядит содержание файла примерно так: "0: 0 0 0 2 567 0 4 56 897... 1: 0 0 98 235 214 2 3 0 0 234... ......" (0, 1..., стоящие перед двоеточием - углы) вывести на экран из подобного файла нужно любое...
C++ Передача в функцию динамического массива Всем привет. Есть, например, функция, работающая с динамическим массивом. Допустим я заполняю этот массив нулями. Далее я передаю его в функцию через указатель и проверяю равенство элемента нулю. Проблема собственно в том, что вместо нуля в функцию передается мусорное значение 12370169556692237821, например, и оно же соответственно выводится на экран консоли. Не могу понять, в чем проблема. В... http://www.cyberforum.ru/cpp-beginners/thread618259.html
Чтение строки C++
В процессе написания программы столкнулся с не большей проблемой, и никак не могу решить. Подскажите что-то. Есть строка, которая заканчивается символами "===". Мы читаем ее из клавиатуры, а потом разбиваем на слова, где слово - символы между пробелами. Вот эта функция: bool just_reading_string (char str, char dict) { cout<<str<<endl; short Nsymbol = 0; while (!((str == '=') && (str ==...
C++ Нужно переработать программу
Вот здесь есть несколько методов нахождения минимума функций на интервале: http://www.cyberforum.ru/cpp-beginners/thread71245.html#post398537 А мне нужно найти корень или корни на интервале. Я думаю задачи схожие, просто не знаю как это сделать. Меня интересует метод итераций, метод золотого сечения и модифицированный метод Ньютона. Но последнего там нет. Помогите с первыми двумя....
C++ Вычислить n член последовательности при n=0 Xn=1 , при n=>1 Xn=n*X(n-1)+1/n http://www.cyberforum.ru/cpp-beginners/thread618234.html
Вычислить n член последовательности при n=0 Xn=1 , при n=>1 Xn=n*X(n-1)+1/n выдает ошибку(( #include "stdafx.h" #include <iostream> #include <cstdlib> #include <math.h>
C++ floating point stack check at 0x00402f75 Помогите разобраться и решить эту проблему! подробнее

Показать сообщение отдельно
Yentroistok
1 / 1 / 0
Регистрация: 25.02.2012
Сообщений: 59
03.07.2012, 11:58     Ссылка на не разрешнный внешний символ
Есть три модуля программы, если собрать их в один-два модуля то все работает. Если же еще и методы отдельно в модуль загнать, то вылезают ошибки:
C++
1
2
3
4
5
Ошибка  5   error LNK1120: 3 неразрешенных внешних элементов    C:\Users\ссс\Desktop\Project!!!!\Derevo\Debug\Derevo.exe    1
Ошибка  4   error LNK2019: ссылка на неразрешенный внешний символ "public: void __thiscall BinaryTree<int>::addChild(int)" (?addChild@?$BinaryTree@H@@QAEXH@Z) в функции _main  C:\Users\ссс\Desktop\Project!!!!\Derevo\Derevo\Tree.obj
Ошибка  2   error LNK2019: ссылка на неразрешенный внешний символ "public: void __thiscall BinaryTree<int>::del(int)" (?del@?$BinaryTree@H@@QAEXH@Z) в функции _main    C:\Users\ссс\Desktop\Project!!!!\Derevo\Derevo\Tree.obj
Ошибка  3   error LNK2019: ссылка на неразрешенный внешний символ "public: void __thiscall BinaryTree<int>::print(struct BinaryTree<int>::Node *,int)" (?print@?$BinaryTree@H@@QAEXPAUNode@1@H@Z) в функции _main   C:\Users\ссс\Desktop\Project!!!!\Derevo\Derevo\Tree.obj
Предупреждение  1   warning C4101: c: неиспользованная локальная переменная c:\users\ссс\desktop\project!!!!\derevo\derevo\tree.cpp 12
Как это исправить?

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
91
92
93
94
95
96
97
98
#pragma once //страж включения
 
template <typename Type>
class BinaryTree
{
    struct Node
    {
        Type value;
        Node *L, *R;        // L - левая ветка; R - правая ветка
        Node(Type v, Node *left = NULL, Node *right = NULL):value(v), L(left), R(right) {}
    };
 
    Node *root;  // Родитель
    
    void AddLR(Node* &r, Type v)    // 
    {
        if (!r)
           r = new Node(v,0,0);
        else
           if(v < r->value)
                AddLR(r->L, v);
           else
                AddLR(r->R, v);
    }
   
bool findRec(Node* r, Type v)           // поиск
    {
       if (!r) 
          return false;
       else 
          if (v == r->value)
          {
             return true;
          }
          else 
             if (v < r->value)
             {
                return findRec(r->L, v);
             }
             else
             {
                return findRec(r->R, v);
             }
    }
 
public:
    BinaryTree(Node *r = 0):root(r){}
    ~BinaryTree();    // деструктор
    void addChild(Type v);
    void del(Type d);
    void print(Node *root1, int Length);
    bool find(Type v);
    Node *Get_Element()
        {
            return root;
        }
 
private:
     void DelElement(Node* &r, Type dv)           // удаление
    {
        Node *EL_T, *v;
        if (!r) 
            cout << "Элемент '"<< dv <<"' не найден!" << endl;        // если введен не существующий в дереве эл-т
        else    // если эл-т существует, то
            if (dv < r->value) 
                DelElement(r->L, dv);
            else 
                if (dv > r->value) 
                    DelElement(r->R, dv);
                   else 
                    {
                        EL_T = r;
                        if (!r->R) 
                            r = r->L;
                        else 
                            if (!r->L) 
                                r = r->R;
                            else
                                {
                                    v = r->L;
                                    if (v->R)
                                    {
                                         while (v->R->R) v = v->R; 
                                           r->value = v->R->value;
                                         EL_T = v->R; 
                                         v->R = v->R->L;
                                    }
                                    else
                                    {
                                         r->value = v->value;
                                         EL_T = v;
                                         r->L=r->L->L;
                                    }
                                }
                        delete EL_T;      // очищаем эл-т(память)
                    }
    }
};
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
#include <iostream>
#include <stdio.h>
#include <conio.h>
#include "Methods fo tree.h"
 
template <typename Type>
void BinaryTree<Type>::addChild(Type v)       // добавляем детей
{ 
    AddLR(root, v);    
}
//--------------------------------------------------------------------------------------------------------------------------
template <typename Type>
void BinaryTree<Type>::del(Type v) 
{ 
    DelElement(root, v);    
}
//--------------------------------------------------------------------------------------------------------------------------
template <typename Type>
void BinaryTree<Type>::print(Node *root1, int Length)
{
  if (root1)  // если значение TRUE, т.е. root1 =! NULL
 {
    print(root1->L, Length + 1);       // вывод левого поддерева
        for(int i = 0; i < Length; i++) 
            {
                cout << "-----";
            }
        cout << "Уровень: " << Length << "; Элемент = "; cout << root1->value << endl;
        //cout<< tree->value<< endl;       // вывод корня подерева
        print(root1->R, Length + 1);               // вывод левого поддерева
  } 
}
//--------------------------------------------------------------------------------------------------------------------------
template <typename Type>
bool BinaryTree<Type>::find(Type v)
{
    return findRec(root, v);
}
//--------------------------------------------------------------------------------------------------------------------------
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
#include <iostream>
#include <stdio.h>
#include <conio.h>
#include "Methods fo tree.h"
#include <stdlib.h>
 
using namespace std;        // для Работы cin, cout, endl
 
int main()
{
    setlocale (LC_ALL, "Russian");
    int n,a,b,c;
    BinaryTree<int> *Type = new BinaryTree<int>();
    
    cout << "Введите кол-во эл-тов в дереве: ";
    cin >> n;
    while (--n > -1) // добавляем эл-ты в дерево
    {     cin >> a;
          Type->addChild(a);    
    }
    cout << "Дерево содержит следующие эл-ты" << endl;
    Type->print(Type->Get_Element(), n+1);  // выводим дерево на экран
    
    cout << "\nВведите эл-т который хотите удалить"<< endl;
    cin >> b; 
    Type->del(b); // удаляем эл-т
    
    cout << "Вывод дерева без удаленного эл-та" << endl;
    Type->print(Type->Get_Element(), n+1);    // выводим получившееся дерево на экран
    
    _getch();
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 15:37. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru