Другие языки программирования и технологии

VS 2010 C++ error LNK2019: ссылка на неразрешенный внешний символ

Ошибка4error LNK2019: ссылка на неразрешенный внешний символ "public: __thiscall Human::Human(char const *,int,int)" (??0Human@@QAE@PBDHH@Z) в функции _main
Ошибка5error LNK1120: 1 неразрешенных внешних элементов
код:
#pragma once
#include <iostream>
#include "chelovek.h"
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>

using namespace std;

int main()
{
int i,old,weight,id;
char name[40];
Human *Humanoid[2];
std::cout << "Name " << endl;
gets(name);
std::cout << "Old " << endl;
std::cin >> old;
std::cout << "Weight " << endl;
std::cin >> weight;
if (old>=18)
{
std::cout << "passportID : ";
std::cin >> id;
Humanoid[1] = new Adult(name, old, weight,id);
}
else
Humanoid[1] = new Human( name, old, weight);

std::cout << "Name " << endl;
gets(name);
std::cout << "Old " << endl;
std::cin >> old;
std::cout << "Weight " << endl;
std::cin >> weight;
if (old>=18)
{
std::cout << "passportID : ";
std::cin >> id;
Humanoid[2] = new Adult(name, old, weight,id);
}
else
Humanoid[2] = new Human( name, old, weight);

for (i=0;i<2;++i)
{
Humanoid->PrintInfo();
}
for (i=0;i<2;++i)
{
Humanoid->~Human();
}

getch();
return 0;
}
как это понимать? и что с этим делать?
Уже ответил .Неверное обращение к массиву!
Игорь Моляков
Игорь Моляков
35 996
Лучший ответ
Код можно упростить до такого

#include <iostream>
#include "chelovek.h"

using namespace std;

int main()
{
int i, old, weight, id;
char name[40];
Human *Humanoid[2];

cout << " Name " << endl;
gets(name);
cout << " Old " << endl;
cin >> old;
cout << " Weight " << endl;
cin >> weight;

if (old >= 18)
{
cout << "passportID : ";
cin >> id;

Humanoid[1] = new Adult(name, old, weight, id);
}
else
Humanoid[1] = new Human( name, old, weight);

cout << " Name " << endl;
gets(name);
cout << " Old " << endl;
cin >> old;
cout << " Weight " << endl;
cin >> weight;

if (old >= 18)
{
cout << " passportID : ";
cin >> id;

Humanoid[2] = new Adult(name, old, weight, id);
}
else
Humanoid[2] = new Human( name, old, weight);

for (i = 0; i < 2; ++i)
{
Humanoid -> PrintInfo();
}

for (i = 0; i < 2; ++i)
{
Humanoid -> ~Human();
}

fflush(stdin);
cin.get();
return 0;
}

Но чтобы ответить на вопрос, следует посмотреть на файл chelovek.h
Кроме того важно знать как создавался сам проект, файл, где расположена функция main следует сделать запускаемым проектом (Для Visual C++ это.. . Проект -> Назначить запускаемым проектом)

У вас файл, в котором определён класс Human из файла, где main() не виден.
Не определен метод Human::Human(char const *,int,int), может файл с ним не подключается линковщиком, может нет метода с такими параметрами
AL
Anatoliy Lykholat
1 460