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

1 неразрешенных внешних элементов - C++

Восстановить пароль Регистрация
 
iRomul
 Аватар для iRomul
158 / 99 / 11
Регистрация: 17.10.2012
Сообщений: 474
Завершенные тесты: 1
13.03.2013, 21:52     1 неразрешенных внешних элементов #1
Приветствую! При компиляции получаю ошибку:
1>main.obj : error LNK2019: ссылка на неразрешенный внешний символ "class std::basic_ostream<char,struct std::char_traits<char> > & __cdecl operator<<(class std::basic_ostream<char,struct std::char_traits<char> > &,class ellipse<int>)" (??6@YAAAV?$basic_ostream@DU?$char_traits@D@std@@@std@@AAV01@V?$ellipse@H@@@Z) в функции _main
1>C:\Users\Station\Desktop\Dropbox\ООП\Lab11\Debug\Lab11.exe : fatal error LNK1120: 1 неразрешенных внешних элементов

Код:

main.cpp
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include "support.hpp"
#include "ellipse.hpp"
 
int main() {
 
    ellipse<int> A(7, 5);
 
    operator<<(cout, A);
 
    cout << A;  
 
    system("PAUSE");
 
    return 0;
}
ellipse.hpp
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
#pragma once
 
#include "support.hpp"
 
template <typename at>
class ellipse {
 
private:
 
    at      A;  //Biggest side
    at      B;
 
public:
 
                    ellipse();
                    ellipse(at, at);
                   ~ellipse();
 
        void        set_radius(at, at);
        ostream&    show_param(ostream& stream  = cout);
friend  ostream&    operator<<(ostream&, ellipse<at>);
        ellipse<at>     operator+(ellipse<at>);
        ellipse<at>     operator-(ellipse<at>);
        ellipse<at>     operator++();
        ellipse<at>&    operator=(ellipse<at>);
 
};
 
template <typename at>
ostream&    operator<<(ostream &stream, ellipse<at> obj) {
 
    return obj.show_param(stream);
 
}
 
template <typename at>
ostream&    ellipse<at>::show_param(ostream &stream) {
 
    double ecc = sqrt((double)(1 - (sqr(B) / sqr(A))));
 
    stream << "Semimajor axis = " << A          << endl;
    stream << "Semiminor axis = " << B          << endl;
    stream << "Eccentricity = "   << ecc        << endl;
    stream << "Focal lenght = "   << A * ecc    << endl;
    stream << "Focal param = "    << sqr(B) / A << endl;
 
    return stream;
 
}
 
/*Некоторые определения опущены */
В чём может быть проблема? Спасибо!
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Kuzia domovenok
 Аватар для Kuzia domovenok
1883 / 1738 / 116
Регистрация: 25.03.2012
Сообщений: 5,907
Записей в блоге: 1
13.03.2013, 21:54     1 неразрешенных внешних элементов #2
Цитата Сообщение от iRomul Посмотреть сообщение
operator<<(cout, A);
это что такое?
iRomul
 Аватар для iRomul
158 / 99 / 11
Регистрация: 17.10.2012
Сообщений: 474
Завершенные тесты: 1
13.03.2013, 22:02  [ТС]     1 неразрешенных внешних элементов #3
Kuzia domovenok, это я попробовал таким способом вызвать работу оператора. Но есть убрать эту строчку и оставить cout << A, то ошибка всё равно останется.
Kuzia domovenok
 Аватар для Kuzia domovenok
1883 / 1738 / 116
Регистрация: 25.03.2012
Сообщений: 5,907
Записей в блоге: 1
13.03.2013, 22:10     1 неразрешенных внешних элементов #4
не уверен, но попробуй,
C++
1
friend  ostream&    operator<< <>(ostream&, ellipse<at>&);
iRomul
 Аватар для iRomul
158 / 99 / 11
Регистрация: 17.10.2012
Сообщений: 474
Завершенные тесты: 1
13.03.2013, 22:15  [ТС]     1 неразрешенных внешних элементов #5
Заработало, спасибо! Только можете пояснить, что это?
I.M.
 Аватар для I.M.
564 / 547 / 5
Регистрация: 16.12.2011
Сообщений: 1,389
13.03.2013, 22:16     1 неразрешенных внешних элементов #6
внутри class ellipse можно так попробовать записать:

C++
1
2
template <typename T>
friend ostream& operator<<(ostream&, ellipse<T>);
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.03.2013, 22:37     1 неразрешенных внешних элементов
Еще ссылки по теме:

Ошибка неразрешенных внешних элементов C++
C++ fatal error LNK1120: 1 неразрешенных внешних элементов C++
Error LNK1120: неразрешенных внешних элементов: 1 C++

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

Или воспользуйтесь поиском по форуму:
iRomul
 Аватар для iRomul
158 / 99 / 11
Регистрация: 17.10.2012
Сообщений: 474
Завершенные тесты: 1
13.03.2013, 22:37  [ТС]     1 неразрешенных внешних элементов #7
I.M., это из-за того, что функция дружественная?
И всё-таки интересно, что это за запись <>?
Yandex
Объявления
13.03.2013, 22:37     1 неразрешенных внешних элементов
Ответ Создать тему
Опции темы

Текущее время: 11:14. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru