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

Ошибка [Linker error] undefined reference to `Triangulation::distPoints(tagPOINT&, tagPOINT&)' - C++

Восстановить пароль Регистрация
 
Surf_Rider
0 / 0 / 0
Регистрация: 15.05.2011
Сообщений: 22
28.08.2012, 11:23     Ошибка [Linker error] undefined reference to `Triangulation::distPoints(tagPOINT&, tagPOINT&)' #1
Добрый день, уважаемые форумчане
есть функция которая считает площадь треугольника
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
double Triangulation::squareTriang(POINT &t1, POINT &t2, POINT &t3)
{
double a,b,c;
double Y,S;
a=distPoints(t1,t2);
b=distPoints(t2,t3);
c=distPoints(t3,t1);
Y=acos((a*a+c*c-b*b)/(2*a*c));
S=0.5*a*c*sin(Y);
return S;      
}
функция distPoint возвращает расстояние м\у двумя точками
при обращении к ней из функции squareTriang возникает вышеназванная ошибка
пожалуйста, помогите разобраться в чем дело?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.08.2012, 11:23     Ошибка [Linker error] undefined reference to `Triangulation::distPoints(tagPOINT&, tagPOINT&)'
Посмотрите здесь:

[Linker error] undefined reference to __cpu_features_init C++
C++ [linker error] undefined reference to 'vtable for Car'
[Linker Error] undefined reference to `__dyn_tls_init_callback' C++
Ошибка [Linker error] undefined reference to `__dyn_tls_init_callback' C++
C++ [Linker error] undefined reference to
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Aloir
 Аватар для Aloir
216 / 216 / 13
Регистрация: 17.12.2010
Сообщений: 688
28.08.2012, 11:26     Ошибка [Linker error] undefined reference to `Triangulation::distPoints(tagPOINT&, tagPOINT&)' #2
линковщик ругается, если подключал dll посмотри правильно ли ты прикрутил библиотеку содержащую данную функци.
Surf_Rider
0 / 0 / 0
Регистрация: 15.05.2011
Сообщений: 22
28.08.2012, 11:35  [ТС]     Ошибка [Linker error] undefined reference to `Triangulation::distPoints(tagPOINT&, tagPOINT&)' #3
я ничего не подключал, у меня все в одном модуле
Andsteadur
152 / 136 / 3
Регистрация: 23.05.2009
Сообщений: 275
28.08.2012, 11:59     Ошибка [Linker error] undefined reference to `Triangulation::distPoints(tagPOINT&, tagPOINT&)' #4
Лучше выложи код с объявлением и определением класса, а то сейчас можно только по кофейной гуще гадать
Surf_Rider
0 / 0 / 0
Регистрация: 15.05.2011
Сообщений: 22
28.08.2012, 12:04  [ТС]     Ошибка [Linker error] undefined reference to `Triangulation::distPoints(tagPOINT&, tagPOINT&)' #5
ок, вот

C++ (Qt)
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
class Triangulation
{
public:
    Triangulation(){;};
    Triangulation( SList &listPoints ){ lp = listPoints; };
 
    void triangulation(vector <Polygon_> &vn);
    static bool isInTriangle(POINT &point, POINT &t1, POINT &t2, POINT &t3 );
    void inputPoints();
    void output();
    double max(double &t1, double &t2);
    double min(double &t1, double &t2);
    double distPoints(POINT &t1, POINT &t2);
    double squareTriang(POINT &p1, POINT &p2, POINT &p3);
    bool inTriang(vector<Polygon_> &vn, POINT &p);
    static double vp( POINT &a, POINT &b, POINT &c)
    { return (a.x*b.y - a.x*c.y - b.x*a.y + b.x*c.y + c.x*a.y - c.x*b.y ); }
    static double scp( POINT &a, POINT &b, POINT &c )
    { return( (c.x - b.x)*(a.x - b.x) + (c.y - b.y)*(a.y - b.y) ); }
    void appendtoTail(T &t){ lp.appendtoTail(t); }
    void clear(){ lp.clear(); }
    int size(){ return lp.size; }
 
private:
    SList lp;
    int direction;
 
    void determineDirection();
};
Andsteadur
152 / 136 / 3
Регистрация: 23.05.2009
Сообщений: 275
28.08.2012, 12:06     Ошибка [Linker error] undefined reference to `Triangulation::distPoints(tagPOINT&, tagPOINT&)' #6
У метода
C++
1
double distPoints(POINT &t1, POINT &t2);
есть определение?
Surf_Rider
0 / 0 / 0
Регистрация: 15.05.2011
Сообщений: 22
28.08.2012, 12:14  [ТС]     Ошибка [Linker error] undefined reference to `Triangulation::distPoints(tagPOINT&, tagPOINT&)' #7
да есть
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
double distPoints(POINT &t1, POINT &t2)
{
if ((t1.x==t2.x)&&(t1.y==t2.y)) return 0;
double x1, x2, y1, y2;
x1=t1.x;
x2=t2.x;
y1=t1.y;
y2=t2.y;
Distance =sqrt(pow(x2-x1,2)+pow(y2-y1,2)); 
return Distance;  
}
Andsteadur
152 / 136 / 3
Регистрация: 23.05.2009
Сообщений: 275
28.08.2012, 12:21     Ошибка [Linker error] undefined reference to `Triangulation::distPoints(tagPOINT&, tagPOINT&)' #8
C++
1
double Triangulation::distPoints(POINT &t1, POINT &t2)
Забыл указать пространство класса. Поэтому эта функция была определена как простая функция
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.08.2012, 12:26     Ошибка [Linker error] undefined reference to `Triangulation::distPoints(tagPOINT&, tagPOINT&)'
Еще ссылки по теме:

C++ [Linker error] undefined reference to 'r'
C++ Undefined reference to 'My_lab2::serialize_child(My_lab2::My_stack&,boost::interpro cess::file_lock&)')
[Linker Error] undefined reference to C++

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

Или воспользуйтесь поиском по форуму:
Surf_Rider
0 / 0 / 0
Регистрация: 15.05.2011
Сообщений: 22
28.08.2012, 12:26  [ТС]     Ошибка [Linker error] undefined reference to `Triangulation::distPoints(tagPOINT&, tagPOINT&)' #9

спасибо, оказывается на поверхности все было
Yandex
Объявления
28.08.2012, 12:26     Ошибка [Linker error] undefined reference to `Triangulation::distPoints(tagPOINT&, tagPOINT&)'
Ответ Создать тему
Опции темы

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