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

unresolved external symbol - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ ВВод / вывод http://www.cyberforum.ru/cpp-beginners/thread829036.html
Вот код. Здесь я записываю три числа разного типа в текстовый файл test.txt. Но в файле отображаются странные символы. Почему так может происходить? Как это можно исправить? Вот какой вывод внутри файла: ц(\ЏВu(@e Џа #include <stdio.h> #include <stdlib.h> int main(void) { FILE *fp;
C++ rand() в потоке Запускается n потоковых функций, каждый из них приостанавливается во время своего выполнения, а в главное программе должен перезапускаться. Перед остановкой потока ему нужно задать произвольный приоритет( от idle до above_normal). Но получается, что всем потокам рандом даёт одно и то же число. Точнее он, наверное, не пересчитывается. Подскажите, пожайлуста, как исправить? (В коде напротив рандома... http://www.cyberforum.ru/cpp-beginners/thread829033.html
По графически заданой функции и значению х, вычислить значение у C++
...
Двумерный массив.Определить минимум среди сумм? C++
Дана целочисленная квадратная матрица. Определить минимум среди сумм модулей элементов диагоналей, параллельных побочной диагонали матрицы.
C++ Задание на выполнение 1. Зашифровать предложение (количество слов от 4 – выбрать самостоятельно, предварительно закодировав – см. лабораторную с коди http://www.cyberforum.ru/cpp-beginners/thread828948.html
Задание на выполнение 1. Зашифровать предложение (количество слов от 4 – выбрать самостоятельно, предварительно закодировав – см. лабораторную с кодировкой). Для шифра ключ (слово или набор букв) выбирается самостоятельно из латинских букв, участвующих в 16-ричной системе исчисления и представляется в битовой записи. Представить пошаговый отчет шифрования. 2. Самостоятельно выбрать студента...
C++ Инициализация при объявлении и перегрузка operator= Предположим, у меня есть класс, например, такого состава: class CharInt { public: char chA; int intB; };Путём добавления в класс перегрузки оператора присваивания вида CharInt& operator=(const char& str) { подробнее

Показать сообщение отдельно
hrustash
3 / 3 / 1
Регистрация: 05.04.2013
Сообщений: 42
05.04.2013, 16:33     unresolved external symbol
Добрый день.
Стоит задача разработать шаблонный класс комплексных чисел.
Одним из пунктов является решение квадратного уравнения с комплексными коэффициентами.
Написал я соответствующую функцию, но выкинуло мне ошибку
1>Source.obj : error LNK2019: unresolved external symbol "void __cdecl roots(class complex<double> &,class complex<double> &,class complex<double> &)" (?roots@@YAXAAV?$complex@N@@00@Z) referenced in function _main

прошу помощи, читал соответствующие форумы, MSDN - не разобрался.
вот код хедера, где определен класс и реализованы все его функции.

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
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
#pragma once
#include <iostream>
#include <Windows.h>
#include <cmath>
using namespace std;
 
template <class T> 
class complex
{
protected:
    T a;
    T b;
public:
    complex();
    complex(T, T);
    complex(const complex<T>&);
    ~complex();
    template <class T> friend ostream& operator << (ostream&, const complex<T>&);
    template <class T> friend istream& operator >> (istream&, complex<T>&);
    T GetRealPart() const;
    T GetImaginaryPart() const;
    complex<T> operator + (const complex<T>&);
    complex<T> operator - (const complex<T>&);
    complex<T> operator * (const complex<T>&);
    complex<T> operator * (T);
    complex<T> operator / (const complex<T>&);
    complex<T>& operator = (const complex<T>&);
    double GetModule();
    friend void roots (complex<T>&, complex<T>&, complex<T>&);
};
 
template <class T>
complex<T>::complex()
{
    a=0;
    b=0;
};
template <class T>
complex<T>::complex(T x, T y)
{
    a=x; b=y;
};
template <class T>
complex<T>::complex(const complex<T>& x)
{
    a=x.a;
    b=x.b;
};
template <class T>
complex<T>::~complex()
{
    cout<<"Destroying"<<endl;
}
template <class T>
T complex<T>::GetRealPart() const
{
    return a;
};
template <class T>
T complex<T>::GetImaginaryPart() const
{
    return b;
};
template <class T>
ostream& operator<<(ostream& out,const complex<T>& c)
{ 
    out<<"Число: "<<c.a;
    if(c.b>=0) out<<"+"<<c.b<<"i";
    else out<<c.b<<"i";
    return out;
}
template <class T>
istream& operator >> (istream& in, complex<T>& c) throw (const char*)
{
    cout<<"Введите действительную часть: ";
    in>>c.a;
    if (!in) throw "Invalid number!";
    cout<<"Введите мнимую часть: ";
    in>>c.b;
    if (!in) throw "Invalid number!";
    return in;
};
template <class T>
complex<T> complex<T>::operator + (const complex<T>& x)
{
    complex<T> temp;
    temp.a=this->a+x.a;
    temp.b=this->b+x.b;
    return temp;
};
template <class T>
complex<T> complex<T>::operator - (const complex<T>&x)
{
    complex<T> temp;
    temp.a=this->a-x.a;
    temp.b=this->b-x.b;
    return temp;
};
template <class T>
complex<T> complex<T>::operator * (const complex<T>& x)
{
    complex<T> temp;
    temp.a=this->a*x.a - this->b*x.b;
    temp.b=this->a*x.b + this->b*x.a;
    return temp;
};
template <class T>
complex<T> complex<T>::operator * (T x)
{
    complex<T> temp;
    temp.a=this->a*x;
    temp.b=this->b*x;
    return temp;
}
template <class T>
complex<T> complex<T>::operator / (const complex<T>& x) throw (const char*)
{
    if(x.a==0 && x.b==0) throw "НЕЛЬЗЯ ДЕЛИТЬ НА НОЛЬ";
    complex<T> temp;
    temp.a=(this->a*x.a + this->b*x.b)/(x.a*x.a+x.b*x.b);
    temp.b=(this->b*x.a - this->a*x.b)/(x.a*x.a+x.b*x.b);
    return temp;
}
template <class T>
complex<T>& complex<T>::operator = (const complex<T>& x) 
{
    if(this!=&x)
    {
        this->a=x.a;
        this->b=x.b;
    }
    return *this;
}
template <class T>
double complex<T>::GetModule()
{
    return (sqrt(a*a+b*b));
}
template <class T>
void roots(complex<T>& x, complex<T>& y, complex<T>& z)
{
    //x=a+bi, y=c+di, z=e+fi
    complex<T> D;
    D=y*y - (z*2)(y*2);
    T n, m;
    m=sqrt((sqrt(h*h+g*g)-h)/2);
    n=g/2*m;
    complex<T> sqrD (n, m);
    complex<T> root1=(sqrD-y)/x*0.5;
    complex<T> root2=(-sqrD-y)/x*0.5;   
}
соответственно, проблема с функцией "roots", а именно при ее вызове в main-е. без вызова компилируется успешно.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 18:01. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru