Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
10 / 10 / 1
Регистрация: 20.04.2012
Сообщений: 288

Undefined reference to `Vector::SetElem(int, double)'|

11.12.2015, 22:39. Показов 1169. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Делал по методичке, но не могу понять, в чем проблема? в гугле что нашел это с названиями или подключаемыми файлами проблема. Но названия совпадают и файлы подключены.
D:\Figures\main.cpp|12|undefined reference to `Vector::SetElem(int, double)'|
выдает ошибку при компиляции.
main.cpp
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include<stdio.h>
#include<conio.h>
#include<iostream>
#include<math.h>
#include "vector.h"
 
using namespace std;
 
int main ()
{
    Vector a;
    a.SetElem(0,1.5);
    a.SetElem(1, 2.3);
    a.SetElem(2, 8.2);
    cout << "\npress any key to exit...";
    getch();
}
vector.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
25
26
27
28
29
30
31
32
33
34
35
#ifndef _VECTOR_H
#define _VECTOR_H
 
class Vector
{
protected:
    double *p; // values
    int n; // size
    protected:
    /// Utilites
    void GetMem(){ p=new double [n];}
//    static inline void Vector::Error(char *str)
public:
    /// Constructors/destructor
    Vector(int _n=3);
    Vector(Vector const &src);
    Vector(double x);
    Vector(double x, double y);
    Vector(double x, double y, double z);
    Vector(int _n, double *v);
    ~Vector();
    /// Properties
    inline int GetN() const;
    inline double GetLength() const;
    inline double GetElem(int i) const;
    inline void SetElem(int i, double v);
    static inline void Error(char *str);
    /// Operations
    void Add(Vector const &v);
    void Multiply(double a);
    void Print() const;
    void Input();
 
};
#endif // #ifndef _VECTOR_H
vector.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
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
#include<stdio.h>
#include<conio.h>
#include<iostream>
#include<math.h>
#include "vector.h"
#include <cstdlib>
using namespace std;
/********************************************************
// Public interface methods
********************************************************/
// C O N S T R U C T O R S / D E S T R U C T O R
/////////////////////////////////////////////////////////
// recieves size (number of items), can be default-constructor
Vector::Vector(int _n) :n(_n)
{
if(n<=0) Error("bad vector size");
GetMem();
}
/////////////////////////////////////////////////////////
// If takes double, makes 2-D vector
Vector::Vector(double x) :n(2)
{
GetMem();
p[0]=p[1]=x;
}
/////////////////////////////////////////////////////////
// If takes two doubles, makes 2-D vector
Vector::Vector(double x, double y) :n(2)
{
GetMem();
p[0]=x;
p[1]=y;
}
/////////////////////////////////////////////////////////
// If takes tree doubles, makes 3-D vector
Vector::Vector(double x, double y, double z) :n(3)
{
GetMem();
p[0]=x;
p[1]=y;
p[2]=z;
}
///////////////////////////////////////////////////////////Makes vector
Vector::Vector(int _n, double *v) :n(_n)
{
if(n<=0) Error("bad vector size");
GetMem();
for(int i=0; i<n; i++) p[i]=v[i];
}
///Destructor
Vector::~Vector()
{
delete p;
}
// P R O P E R T I E S
/////////////////////////////////////////////////////////
// returns number of elements
inline int Vector::GetN() const
{
return n;
}
inline void Vector::Error(char *str)
{
    std::cout << str;
    exit(1);
}
/////////////////////////////////////////////////////////
// returns vector length
double Vector::GetLength() const
{
double s=0;
for(int i=0; i<n; i++) s+= (p[i]*p[i]);
return sqrt(s);
}
/////////////////////////////////////////////////////////
// returns vector's i-element
double Vector::GetElem(int i) const
{
if(i<0 || i>=n) Error("bad index");
return p[i];
}
/////////////////////////////////////////////////////////
// sets vector's i-element’s value
void Vector::SetElem(int i, double v)
{
    if(i<0 || i>=n) Error("bad index");
    p[i]=v;
}
 
// O P E R A T I O N S
void Vector::Add(Vector const &v)
{
if(n!=v.n) Error("Bad vector size");
for(int i=0; i<n; i++) p[i]+=v.p[i];
}
void Vector::Multiply(double a)
{
for(int i=0; i<n; i++) p[i]*=a;
}
void Vector::Print() const
{
cout << "Vector (" << p[0];
for (int i=1; i<n; i++) cout << "; " << p[i];
cout << ") ";
}
void Vector::Input()
{
cout << "Input vector elements:\n";
for (int i=0; i<n; i++)
{
cout << "v["<< i << "] = ";
cin >> p[i];
}
}
/********************************************************
// F R I E N D F U N C T I O N S
********************************************************/
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
11.12.2015, 22:39
Ответы с готовыми решениями:

Ошибка [Linker error] undefined reference to `Vector::Vector(int)'
Добрый день. Делал по методички, и почему-то валятся ошибки... файл lab9_main.cpp #include &lt;iostream&gt; #include...

[Linker error] undefined reference to `sterling(int, int, int)'
#include &lt;iostream&gt; using namespace std; int sterling(int,int,int); int sterling(int,int); int sterling(int); int main() { ...

Undefined reference to Change_Array(int, int)
Приветствую всех желающих помочь Третьи сутки осваиваю функции C++, вторые сутки бьюс не на жизнь, а на смерть с // undefined...

2
Неэпический
 Аватар для Croessmah
18146 / 10730 / 2066
Регистрация: 27.09.2012
Сообщений: 27,030
Записей в блоге: 1
11.12.2015, 23:01
inline уберите
1
10 / 10 / 1
Регистрация: 20.04.2012
Сообщений: 288
12.12.2015, 00:49  [ТС]
Croessmah, большое спасибо)
не могли бы еще подсказать почему именно так? Ну всмысле почему он лишний?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
12.12.2015, 00:49
Помогаю со студенческими работами здесь

Шаблон класса complex. Ошибка undefined reference to `complex<double>::SetRe(double)'
Есть такой файл complex.h #ifndef COMPLEX_H #define COMPLEX_H template&lt;class Type&gt; class complex{ public: Type Re; Type...

undefined reference to `CList<int>::show()'
привет ! написал этот код в eclipse #ifndef CLIST_H_ #define CLIST_H_ template&lt;class T&gt; class CList { public: CList(); ...

Error LNK2019: unresolved external symbol "public: __thiscall Vector<int>::Vector<int>(int,int,int)" (?0?$Vec
Вот есть заголовочный файл // Заголовочный файл Vector.h #ifndef VECTOR_H #define VECTOR_H #include &lt;iostream&gt; using...

error LNK2019: ссылка на неразрешенный внешний символ "public: __thiscall Vector<int>::Vector<int>(void)" (?0?$Vector@H@@QAE@XZ) в функции _main
//Vector.h #include &lt;iostream&gt; #include &lt;Windows.h&gt; #include &lt;climits&gt; #include &lt;vector&gt; #include &lt;stdlib.h&gt; #include &lt;fstream&gt;...

Как можно увеличить размер вектора, который является элементом вектора vector<vector<int>>arr(n, vector <int>)
Написал программу, которая создает вектор 'а' векторов 'b', вектора 'b' содержат 2 числа. Стало интересно, как нужно изменить программу...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Символьное дифференцирование
igorrr37 13.02.2026
/ * Программа принимает математическое выражение в виде строки и выдаёт его производную в виде строки и вычисляет значение производной при заданном х Логарифм записывается как: (x-2)log(x^2+2) -. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru