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

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

Войти
Регистрация
Восстановить пароль
 
razqr
20 / 0 / 1
Регистрация: 24.04.2013
Сообщений: 22
#1

Класс human. Ссылка на неразрешенный внешний символ - C++

05.05.2014, 21:23. Просмотров 486. Ответов 3
Метки нет (Все метки)

Есть код программы. Но при компиляции он выдает ошибки:
XML
1
2
3
4
5
6
7
8
9
10
11
1>File1.obj : error LNK2019: ссылка на неразрешенный внешний символ "public: __thiscall human::human(void)" (??0human@@QAE@XZ) в функции "void __cdecl `dynamic initializer for 'TestHuman''(void)" (??__ETestHuman@@YAXXZ)
1>File1.obj : error LNK2019: ссылка на неразрешенный внешний символ "public: __thiscall human::~human(void)" (??1human@@QAE@XZ) в функции "void __cdecl `dynamic atexit destructor for 'TestHuman''(void)" (??__FTestHuman@@YAXXZ)
1>File1.obj : error LNK2019: ссылка на неразрешенный внешний символ "public: void __thiscall human::setFirstName(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >)" (?setFirstName@human@@QAEXV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z) в функции "void __cdecl setHumanFirstName(void)" (?setHumanFirstName@@YAXXZ)
1>File1.obj : error LNK2019: ссылка на неразрешенный внешний символ "public: void __thiscall human::setLastName(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >)" (?setLastName@human@@QAEXV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z) в функции "void __cdecl setHumanLastName(void)" (?setHumanLastName@@YAXXZ)
1>File1.obj : error LNK2019: ссылка на неразрешенный внешний символ "public: void __thiscall human::setWeight(int)" (?setWeight@human@@QAEXH@Z) в функции "void __cdecl setHumanWeight(void)" (?setHumanWeight@@YAXXZ)
1>File1.obj : error LNK2019: ссылка на неразрешенный внешний символ "public: void __thiscall human::setAge(int)" (?setAge@human@@QAEXH@Z) в функции "void __cdecl setHumanAge(void)" (?setHumanAge@@YAXXZ)
1>File1.obj : error LNK2019: ссылка на неразрешенный внешний символ "public: class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > __thiscall human::getFirstName(void)" (?getFirstName@human@@QAE?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@XZ) в функции "void __cdecl getHumanFirstName(void)" (?getHumanFirstName@@YAXXZ)
1>File1.obj : error LNK2019: ссылка на неразрешенный внешний символ "public: class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > __thiscall human::getLastName(void)" (?getLastName@human@@QAE?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@XZ) в функции "void __cdecl getHumanLastName(void)" (?getHumanLastName@@YAXXZ)
1>File1.obj : error LNK2019: ссылка на неразрешенный внешний символ "public: int __thiscall human::getWeight(void)" (?getWeight@human@@QAEHXZ) в функции "void __cdecl getHumanWeight(void)" (?getHumanWeight@@YAXXZ)
1>File1.obj : error LNK2019: ссылка на неразрешенный внешний символ "public: int __thiscall human::getAge(void)" (?getAge@human@@QAEHXZ) в функции "void __cdecl getHumanAge(void)" (?getHumanAge@@YAXXZ)
1>MSVCRTD.lib(crtexew.obj) : error LNK2019: ссылка на неразрешенный внешний символ _WinMain@16 в функции ___tmainCRTStartup).
Сам код программы:
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
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
#include <iostream>
#include <string>
#include "human.h"
 
using namespace std;
 
human TestHuman;
int choice;
string inFirstName;
string inLastName;
int inWeight;
int inAge;
 
int cont = 1;
 
void setHumanFirstName()
{
    cout << "Введите имя человека: ";
    cin >> inFirstName;
    TestHuman.setFirstName(inFirstName);
    cout << endl;
    return;
}
 
void setHumanLastName()
{
    cout << "Введите фамилию человека: ";
    cin >> inLastName;
    TestHuman.setLastName(inLastName);
    cout << endl;
    return;
}
 
void setHumanWeight()
{
    cout << "Введите вес человека: ";
    cin >> inWeight;
    TestHuman.setWeight(inWeight);
    cout << endl;
    return;
}
 
void setHumanAge()
{
    cout << "Введите возраст человека: ";
    cin >> inAge;
    TestHuman.setAge(inAge);
    cout << endl;
    return;
}
 
void getHumanFirstName()
{
    cout << "Имя: " << TestHuman.getFirstName() << endl;
    cout << endl;
    return;
}
 
void getHumanLastName()
{
    cout << "Фамилия: " << TestHuman.getLastName() << endl;
    cout << endl;
    return;
}
 
void getHumanWeight()
{
    cout << "Вес: " << TestHuman.getWeight() << endl;
    cout << endl;
    return;
}
 
void getHumanAge()
{
    cout << "Возраст: " << TestHuman.getAge() << endl;
    cout << endl;
    return;
}
 
void getAllHumanParameters()
{
    cout << "Имя: " << TestHuman.getFirstName() << endl;
    cout << "Фамилия: " << TestHuman.getLastName() << endl;
    cout << "Вес: " << TestHuman.getWeight() << endl;
    cout << "Возраст: " << TestHuman.getAge() << endl;
    cout << endl;
    return;
}
 
void exit()
{
    cont = 0;
    return;
}
 
int main(int argc, char ** argv)
{
    do
    {
        cout << "Класс Человек. Написал Кулхацкер. Версия 1.0" << endl;
        cout << "--------------------------------------------" << endl;
        cout << "1) Задать имя" << endl;
        cout << "2) Задать фамилию" << endl;
        cout << "3) Задать вес" << endl;
        cout << "4) Задать возраст" << endl;
        cout << "--------------------------------------------" << endl;
        cout << "5) Вывести имя" << endl;
        cout << "6) Вывести фамилию" << endl;
        cout << "7) Вывести вес" << endl;
        cout << "8) Вывести возраст" << endl;
        cout << "9) Вывести все" << endl;
        cout << "--------------------------------------------" << endl;
        cout << "0) Выйти" << endl;
        cout << "--------------------------------------------" << endl;
        cout << "> ";
        cin >> choice;
        switch (choice)
        {
        case 1:
            setHumanFirstName();
            break;
        case 2:
            setHumanLastName();
            break;
        case 3:
            setHumanWeight();
            break;
        case 4:
            setHumanAge();
            break;
        case 5:
            getHumanFirstName();
            break;
        case 6:
            getHumanLastName();
            break;
        case 7:
            getHumanWeight();
            break;
        case 8:
            getHumanAge();
            break;
        case 9:
            getAllHumanParameters();
            break;
        case 0:
            exit();
            break;
        }
    } while (cont != 0);
    return 0;
}
human.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
ifndef HUMAN_H
#define HUMAN_H
 
class human
{
public:
    human();
    ~human();
 
    void setFirstName(std::string newFirstName);
    void setLastName(std::string newLastName);
    void setWeight(int newWeight);
    void setAge(int newAge);
 
    std::string getFirstName();
    std::string getLastName();
    int getWeight();
    int getAge();
 
private:
    std::string firstName;
    std::string lastName;
    int weight;
    int age;
};
 
#endif /* HUMAN_H */

Я даже не знаю в чем то ошибка оО... Помогите пожалуйста.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.05.2014, 21:23
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Класс human. Ссылка на неразрешенный внешний символ (C++):

Класс "Зачетка": Ссылка на неразрешенный внешний символ - C++
Практиковался( Visual Studio 2012) в написании программы и выдаёт вот такую ошибку 1&gt;MSVCRTD.lib(crtexe.obj) : error LNK2019: ссылка на...

Ссылка на неразрешенный внешний символ - C++
Здравствуйте, мне нужна ваша помощь, уже час бьюсь но не могу решить данную проблему. Вообщем, суть задания - записать в функцию...

Ссылка на неразрешенный внешний символ - C++
Добрый день всем! Помогите пожалуйста студенту, не пойму, то ли лыжи не едут, то ли май месяц на дворе, первая лаба по ООП, подучил теорию,...

Ссылка на неразрешенный внешний символ - C++
Identification_Organisation.h: #pragma once #include&lt;string&gt; using namespace std; class Main_Organisation { int...

Ссылка на неразрешенный внешний символ - C++
Базовый класс - class area_cl{ public: int a,b; double height; //высота double wight; ...

Ссылка на неразрешенный внешний символ - C++
Ссылка на неразрешенный внешний символ _main в функции ____tmainCRTStartup В чем проблема?? #include &quot;stdafx.h&quot; #include...

3
Progers
New to C++
83 / 44 / 5
Регистрация: 14.01.2013
Сообщений: 258
05.05.2014, 21:31 #2
razqr, Я думаю, что вы должны реализовать тело методов, тогда всё должно заработать.
0
dimcoder
Полярный
466 / 438 / 68
Регистрация: 11.09.2011
Сообщений: 1,136
05.05.2014, 21:32 #3
Цитата Сообщение от razqr Посмотреть сообщение
~human();
объявить объявили, но не описали.
Цитата Сообщение от razqr Посмотреть сообщение
TestHuman.setFirstName(inFirstName);
А ГДЕ КОД для setFirstName? ГДЕ ГОД для всего из human.h?!
0
cosmic
34 / 32 / 0
Регистрация: 29.08.2012
Сообщений: 84
Записей в блоге: 1
05.05.2014, 21:49 #4
Цитата Сообщение от dimcoder Посмотреть сообщение
А ГДЕ КОД для setFirstName? ГДЕ ГОД для всего из human.h?!
ТС забыл наверно, в процессе обучения и не такое бывает =)
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.05.2014, 21:49
Привет! Вот еще темы с ответами:

Ссылка на неразрешенный внешний символ - C++
Ошибка 2 error LNK2019: ссылка на неразрешенный внешний символ &quot;public: struct EQUIPMENT_ESSENCE * __thiscall...

Ссылка на неразрешенный внешний символ - C++
Следует сортировать рандомный массив методом включения и пузырьковым методом, после чего сравнить результат работы реализованных...

Ссылка на неразрешенный внешний символ - C++
error LNK2019: ссылка на неразрешенный внешний символ &quot;public: class LogProb __thiscall transpair_model4::...

Ссылка на неразрешенный внешний символ - C++
Строка 36 PathStripToRoot(szRoot); Вызывает ошибки: Ошибка 1 error LNK2019: ссылка на неразрешенный внешний символ...


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

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

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