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

error LNK2019 - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Обьясните пожалуйсто код http://www.cyberforum.ru/cpp-beginners/thread126875.html
enum ConsoleColor { Black = 0, Blue = 1, Green = 2, Cyan = 3, Red = 4, Magenta = 5, Brown = 6, LightGray = 7,
C++ Сортировка структур по полю Здравствуйте всем! Я здесь новичок. Учусь на программиста на 1 курсе, скажу прямо мне очень тяжело.:cry:Мне нужно до 15 мая сдать курсовую, а там 3 задачи надо сделать. В ообщем я не могу хоть убей. Осмелюсь Вас всех попросить, может кто-нибудь мне поможет;D Напишите пожалуйста программы на задачи на С++:gsmile: 1 Задача:Задан список участников соревнований по плаванию и их результаты.... http://www.cyberforum.ru/cpp-beginners/thread126866.html
C++ вывести список содержащий только положительные элементы
помогите с кодом! вообщем тема СПИСКИ! создаем список какой то......в него можно добавлять элементы, удалять, искать!!! с 1 по 10 пункт программа работает...а вот 11 пункт не хочет делать! 11 пункт - вывести список содержащий только положительные элементы! попробуйте запустите..потестируйте...может поймете в чем дело #include "stdafx.h" #pragma hdrstop #pragma argsused #include...
C++ Вычисление интегралов
Помогите пожалуйста составить программу для вычисления значения определенного интеграла от функции cosx\x для нулевого нижнего и действительного верхнего предела a с точностью ε с использованием рекурсии. Скажу сразу в теме полный ноль, только начал разбираться, поэтому прокомментируйте поподробнее что к чему.
C++ Константные поля и операция присвоения - как быть? http://www.cyberforum.ru/cpp-beginners/thread126823.html
У меня в классе реализовано константное поле: int const constant; инициализация такой переменной происходит в конструкторе в списке инициализации: GoodClass::GoodClass(char* str,int inint):constant(inint){ //... }; по идее ясно, что изменить такое поле невозможно но если надо?(
C++ Вычисление рекурсивным методом значение математической зависимости Вычислить рекурсивным методом значение математической зависимости, заданной рекуррентной формулой, для произвольного значения параметров. Функция Аккермана: n, m = 0, 1, 2, … A(m, n) = n+1 , если m=0 A(m, n) = A(m-1, 1) , если n=0 A(m, n) = A(m-1, A(m, n-1)), если m>0, n>0 Помогите пожалуйста, искал в гугле ничего не нашел , книга тоже не помогла. Нужно к понедельнику данная задачка.... подробнее

Показать сообщение отдельно
_Eldar_
 Аватар для _Eldar_
44 / 29 / 3
Регистрация: 31.10.2009
Сообщений: 200
08.05.2010, 14:09     error LNK2019
Привет всем, не могу понять из-за чего такая ошибка(( помогите разобраться, пример брал с учебника(практикум Павловской 2-я часть), работаю в VS 2005, помогите разобраться пожалуйста.Заранее благодарен.
вот код ошибки:
1>------ Build started: Project: Treygol, Configuration: Debug Win32 ------
1>Linking...
1>Main.obj : error LNK2019: unresolved external symbol "public: __thiscall Triangle::~Triangle(void)" (??1Triangle@@QAE@XZ) referenced in function _main
1>Main.obj : error LNK2019: unresolved external symbol "void __cdecl IsIncluded(class Triangle * * const,int)" (?IsIncluded@@YAXQAPAVTriangle@@H@Z) referenced in function _main
1>Main.obj : error LNK2019: unresolved external symbol "public: __thiscall Triangle::Triangle(class Point,class Point,class Point,char const *)" (??0Triangle@@QAE@VPoint@@00PBD@Z) referenced in function _main
1>Main.obj : error LNK2019: unresolved external symbol "public: void __thiscall Triangle::ShowSideAndArea(void)const " (?ShowSideAndArea@Triangle@@QBEXXZ) referenced in function "void __cdecl Show(class Triangle * * const,int)" (?Show@@YAXQAPAVTriangle@@H@Z)
1>Main.obj : error LNK2019: unresolved external symbol "public: void __thiscall Triangle::Show(void)const " (?Show@Triangle@@QBEXXZ) referenced in function "void __cdecl Show(class Triangle * * const,int)" (?Show@@YAXQAPAVTriangle@@H@Z)
1>D:\Cpp\lab\ОПП\Классы\Treygol\Debug\Treygol.exe : fatal error LNK1120: 5 unresolved externals
1>Build log was saved at "file://d:\Cpp\lab\ОПП\Классы\Treygol\Treygol\Debug\BuildLog.htm"
1>Treygol - 6 error(s), 0 warning(s)
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
а вот файлы проекта:
Point.h
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#ifndef POINT_H
#define POINT_H
 
class Point{
public:
    //конструктор
    Point(double _x = 0, double _y = 0 ) :x(_x), y(_y) {}
    //Другие методы
    void Show() const;
public:
    double x, y;
};
#endif /*POINT_H*/
Point.cpp
C++
1
2
3
4
5
6
7
8
#include <iostream>
#include "Point.h"
 
using namespace std;
 
void Point::Show() const{
    cout << " (" << x << ", " << y << ")";
}
Triangle.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
#ifndef TRIANGLE_H
#define TRIANGLE_H
 
#include "Point.h"
 
class Triangle{
 
public: 
    Triangle(Point, Point, Point, const char*); // конструктор
    Triangle(const char*);// конструктор пустого (нулевого) треугольника
    ~Triangle();// деструктор
    Point Get_v1() const{return v1;}// Получить значение v1
    Point Get_v2() const{return v2;}// Получить значение v2
    Point Get_v3() const{return v3;}// Получить значение v3
    char* GetName() const {return name;} // Получить имя объекта
    void Show()const; // Показать объект
    void ShowSideAndArea() const;// Показать стороны и площадь объекта
 
public:
 
    static int count; //количество созданных объектов
 
private:
 
    char* objID; //идентификатор объекта
    char* name; //наименование треугольника
    Point v1, v2, v3; //вершины
    double a; //сторона, соединяющая vl и v2
    double b; //сторона, соединяющая v2 и v3
    double c; //сторона, соединяющая vl и v3
 
};
#endif /*TRIANGLE_H*/
Triangle.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
#include <math.h>
#include <iostream>
#include <iomanip>
#include <cstring>
#include <widows.h>
#include "Triangle.h"
 
using namespace std;
 
//конструктор
Triangle::Triangle (Point _v1, Point _v2, Point _v3, const char* ident)
: v1(_v1), v2(_v2), v3(_v3){
    char buf[16];
 
    objID = new char[strlen(ident) + 1];
    strcpy(objID, ident);
 
    count++;
 
    sprintf(buf, "Треугольник %d", count);
    name = new char[strlen(buf) + 1];
    strcpy(name, buf);
 
    a = sqrt((v1.x - v2.x) * (v1.x - v2.x) + (v1.y - v2.y) * (v1.y - v2.y));
    b = sqrt((v2.x - v3.x) * (v2.x - v3.x) + (v2.y - v3.y) * (v2.y - v3.y));
    с = sqrt((v1.x - v3.x) * (v1.x - v3.x) + (v1.y - v3.y) * (v1.y - v3.y));
 
    cout << "Конструктор_1 для: " << objID << "( " << name << " )" << endl;
}
 
// Конструктор пустого (нулевого) треугольника
Triangle::Triangle(const char* ident){
 
    char buf[16];
    objID = new char[strlen(ident) + 1];
    strcpy(objID, ident);
 
    count++;
    sprintf(buf, "Треугольник %d", count);
    name = new char[strlen(buf) + 1];
    strcpy(name, buf);
    a = b = c = 0;
    cout << "Конструктор_2 для" << objID << " ( " << name << " )" << endl;  
}
//Деструктор
Triangle::~Triangle(){
    cout << "Деструктор для: " << objID << endl;
    delete []objID;
    delete []name;
}
 
//Показать объект
void Triangle::Show() const{
    cout << name << ";";
    v1.Show(); v2.Show(); v3.Show();
    cout << endl;
}
// Показать стороны и площадь объекта
void Triangle::ShowSideAndArea()const{
    double p = (a + b + c) / 2;
    double s = sqrt(p * (p - a) * (p - b) * (p - c));
    cout << "----------------------------" << endl;
    cout << name << ";";
    cout.precision(4);
    cout << " a = " << setw(5) << a;
    cout << ". b = " << setw(5) << b;
    cout << ". c = " << setw(5) << c;
    cout << ";\ts = " << s << endl;
 
}
Main.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
118
// Main.cpp
#include <iostream>
#include "Triangle.h"
#include <windows.h>
#include <conio.h>
 
using namespace std;
 
int  Menu();
int  GetNumber(int, int);
void ExitBack();
void Show(Triangle* [], int);
void Move(Triangle* [], int);
void FindMax(Triangle* [], int);
void IsIncluded(Triangle* [], int);
 
// Инициализация глобальных переменных
int Triangle::count = 0;
// главная функция
int main() {
    
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
 
     //Определения точек
    Point p1(0, 0);   Point p2(0.5, 1);
    Point p3(1, 0);   Point p4(0, 4.5);
    Point p5(2, 1);   Point p6(2, 0);
    Point p7(2, 2);   Point p8(3, 0);
 
    // Определения треугольников
    Triangle triaA(p1, p2, p3, "triaA");
    Triangle triaB(p1, p4, p8, "triaB");
    Triangle triaC(p1, p5, p6, "triaC");
    Triangle triaD(p1, p7, p8, "triaD");
 
    // Определение массива указателей на треугольники
    Triangle* pTria[] = { &triaA, &triaB, &triaC, &triaD };
    int n = sizeof (pTria) / sizeof (pTria[0]);
 
    // Главный цикл
    bool done = false;
 
    while (!done) {
        switch (Menu()){
        case 1: Show(pTria, n); break;
        case 2: Move(pTria, n); break;
        case 3: FindMax(pTria, n); break;
        case 4: IsIncluded(pTria, n); break;
        case 5: cout << "Конец работы." << endl;
                done = true; break;
        }
    }
    _getch();
    return 0;
}
 
int Menu(){
 
    cout << "\n==================== Г л а в н о е   м е н ю ==================" << endl;
    cout << "1 - вывести все объекты\t - найти максимальный" << endl;
    cout << "2 - переместить\t\t 4 - определить отношения включения" << endl;
    cout << "\t\t     5 - выход" << endl;
 
    return GetNumber(1, 5);
    
}
 
// ввод целого числа в заданном диапазоне
int GetNumber(int min, int max) {
    int number = min - 1;
    while (true) {
        cin >> number;
        if ((number >= min) && (number <= max) && (cin.peek() == '\n'))
            break;
        else {
            cout << "Повторите ввод (ожидается число от " << min
                 << " до " << max << " ) ; " << endl;
        cin.clear();
        while (cin.get() != '\n') {};
        }
    }
    return number;
}
// возврат в функцию с основным меню
void ЕхitВаск() {
    cout << "Нажмите Enter." << endl;
    cin.get(); cin.get();
}
 
// вывод всех треугольников
void Show(Triangle* p_tria[], int k) {
    cout << "======= Перечень треугольников ========" << endl;
    int i;
    for (i = 0; i < k; ++i) p_tria[i]->Show();
    for (i = 0 ; i < k; ++i) p_tria[i]->ShowSideAndArea();
    ЕхitВаск();
}
 
// перемещение
void Move(Triangle* p_tria[], int k) {
    cout << "============= Перемещение =============" << endl;
    // здесь будет код функции...
    ЕхitВаск();
}
 
// поиск максимального треугольника
void FindMax(Triangle* p_tria[], int к) {
    cout << "=== Поиск максимального треугольника ==" << endl;
    // здесь будет код функции...
    ЕхitВаск();
}
// определение отношения включения
void Islncluded(Triangle* p_tria[], int к) {
    cout << "======== Отношение включения ==========" << endl;
    // здесь будет код функции...
    ЕхitВаск();
}
Добавлено через 1 час 4 минуты
Все тема закрыта, в коде все правильно, просто я файл Triangle.cpp не подключил, а просто открыл, т.е. не добавил в проект. Начал создавать занового проект и все заработало))
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 12:57. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru