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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 52, средняя оценка - 4.77
azaron
0 / 0 / 0
Регистрация: 21.12.2010
Сообщений: 14
#1

error LNK2019: unresolved external symbol "public: __thiscall Shape2D::Shape2D(void)" (??0Shape2D@@QAE@XZ) - C++

02.04.2011, 19:36. Просмотров 6753. Ответов 3
Метки нет (Все метки)

Наследование.
Базовый класс:
C++
1
2
3
4
5
6
7
8
9
class Shape2D  
{   
public:
    Shape2D();
    virtual ~ Shape2D();
    virtual float Area( )= 0;
    virtual float Perimeter() = 0;
    virtual void PrintMessage();
};
Shape2D() – конструктор Базового класса.
~ Shape2D() – деструктор базового класса.
Area() – возвращает значение площади фигуры.
Perimeter() – возвращает значение периметру фигуры.
PrintMessage() – выводит сообщение о типе фигуры.

Производные классы Triangle и Rectangle
Определить необходимые для производных классов параметры и переопределить необходимые функции.

мой код:
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
#include <iostream>
#include <conio.h>
#include <math.h>
using namespace std;
 
class Shape2D  
{   
public:
    Shape2D();
    virtual ~ Shape2D();
    virtual float Area() const = 0;
    virtual float Perimeter() const = 0;
    virtual void PrintMessage();
};
 
 
class Triangle: public Shape2D
{
private:
    float _a, _b, _c;
public:
    Triangle(float a = 3, float b=4, float c=5): _a(a), _b(b), _c(c) { }
 
    virtual float Area( ) const 
    {
        float p=(_a+_b+_c)/2;
        float s=(p(p-_a)(p-_b)(p-_c));
        return p; 
    }
    virtual float Perimeter() const
    {
        return _a+_b+_c;
    }
    virtual void PrintMassage() 
    {
        cout<<"Triangle\n"<<"Area:\n" ;
    }
};
 
class Rectangle: public Shape2D
{
private:
    float _d, _sh;
public:
    Rectangle(float d = 4, float sh = 5): _d(d), _sh(sh) { }
 
    virtual float Area() const
    { 
        return _d*_sh; 
    }
 
    virtual float Perimeter() const
    {
        return 2*(_d+_sh);
    }
 virtual void PrintMassage() 
    {
        cout<<"Rectangle\n" ;
    }
};
 
int main()
{
    Shape2D *shapes[2];
 
    shapes[0] = new Rectangle (2,9);
    shapes[1] = new Triangle (5,9,6);
    
    for (int i = 0; i < 2; ++i)
    {
        cout << shapes[i]->Perimeter()<<endl;
        cout << shapes[i]->Area() <<endl;
    }
    for (int i = 0; i < 2; ++i)
        delete shapes[i];
    getch();
    return 0;
}
но при компилации видаєт:
1>main.obj : error LNK2019: unresolved external symbol "public: __thiscall Shape2D::Shape2D(void)" (??0Shape2D@@QAE@XZ) referenced in function "public: __thiscall Triangle::Triangle(float,float,float)" (??0Triangle@@QAE@MMM@Z)
1>main.obj : error LNK2001: unresolved external symbol "public: virtual void __thiscall Shape2D::PrintMessage(void)" (?PrintMessage@Shape2D@@UAEXXZ)
1>main.obj : error LNK2019: unresolved external symbol "public: virtual __thiscall Shape2D::~Shape2D(void)" (??1Shape2D@@UAE@XZ) referenced in function "public: virtual __thiscall Triangle::~Triangle(void)" (??1Triangle@@UAE@XZ)


что не так?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.04.2011, 19:36
Здравствуйте! Я подобрал для вас темы с ответами на вопрос error LNK2019: unresolved external symbol "public: __thiscall Shape2D::Shape2D(void)" (??0Shape2D@@QAE@XZ) (C++):

Error LNK2019: unresolved external symbol "public: __cdecl videoInput::videoInput(void)" - C++
Добрый день, уважаемые форумчане. Столкнулся при написании программы на Opencv с некоторой проблемой в бибилиотеке VideoInput при написании...

Error LNK2019: unresolved external symbol "public: - C++
SeverWinSock.h#pragma once #include &quot;stdafx.h&quot; #include &quot;winsock.h&quot; const int WM_SERVER_ACCEPT = WM_USER+1; class...

Ошибка при сборке проекта: "error LNK2019: unresolved external symbol" - C++
Все части проекта успешно компилируются , но при сборке появляются ошибки: 1&gt;prakt2.obj : error LNK2019: unresolved external symbol...

Ошибка при подключении заголовочного файла: "error LNK2019: unresolved external symbol" - C++
Добрый день. Я что то не могу разобраться как работают эти заголовки на с++(вижуал студия). Создал Test.h В нём написал ...

Error LNK2019: unresolved external symbol "public: __thiscall Vector<int>::Vector<int>(int,int,int)" (?0?$Vec - C++
Вот есть заголовочный файл // Заголовочный файл 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 - C++
//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;...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
ValeryS
Модератор
6556 / 5022 / 464
Регистрация: 14.02.2011
Сообщений: 16,763
02.04.2011, 19:43 #2
Второй раз на дню
конструктор объявлен но не описан

тоже и деструктором и с другой функцией (они не абстрактны)
опиши реализацию
azaron
0 / 0 / 0
Регистрация: 21.12.2010
Сообщений: 14
02.04.2011, 19:47  [ТС] #3
так просто дело в том, что я не понимаю как? для меня ето что то новое, из-за этого прошу помощи!
ValeryS
Модератор
6556 / 5022 / 464
Регистрация: 14.02.2011
Сообщений: 16,763
02.04.2011, 20:29 #4
как бы это сказать по проще
примеры из твоего листинга
у функции есть объявление
Цитата Сообщение от azaron Посмотреть сообщение
virtual void PrintMessage();
где говорится какая функция какие входные/выходные параметры
кода как такового нет как и что будет делать функция неизвестно
Для этого есть реализация
как сделано у тебя в производных классах
Цитата Сообщение от azaron Посмотреть сообщение
virtual void PrintMassage()
{
cout<<"Triangle\n"<<"Area:\n" ;
}
в базовом классе нет ни одной реализации
по этому компилятор (линкер) говорит что он не нашел этих функций

А что такое виртуальные функции, абстрактные классы Ты знаешь
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.04.2011, 20:29
Привет! Вот еще темы с ответами:

Error LNK2019: unresolved external symbol - C++
Доброго дня, программисты. Пишу синтезатор на Microsoft Visual C++ 2010 Express. Столкнулся с такой проблемой: при компиляции vst2...

error LNK2019: unresolved external symbol - C++
Добрый вечер. Недавно начала изучение языка С++ и столкнулась с такими ошибками: Error 1 error LNK2019: unresolved external symbol...

Error LNK2019: unresolved external symbol - C++
помогите пожалуйста исправить ошибку при компиляции,никогда прежде такой ошибки не встречала,не знаю как исправить и соответственно не могу...

Error LNK2019: unresolved external symbol - C++
Всем привет. Имеется конструктор и деструктор public: MyClass(const char *url);//конструктор. параметр -адрес из командной...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
02.04.2011, 20:29
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru