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

Не могу найти ошибку - C++

Восстановить пароль Регистрация
 
Neo4em
0 / 0 / 0
Регистрация: 24.11.2013
Сообщений: 2
24.11.2013, 19:56     Не могу найти ошибку #1
fatal error LNK1120: неразрешенных внешних элементов: 1

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
#include <iostream>
#include <cstring>
#include <thread>
using namespace std;
 
class Animal { //Класс животные
    int men; //Колличество мужских особей.
    int women; //Колличество женских особей.
    char name[20]; //Название животного
public:
    Animal() { // Конструктор.
        men = women = 0;
        strcpy(name, "Неизвестно");
        cout << "Сработал конструктор базового класса № 1\n";
    }
 
    Animal(int m, int w, char *n) { //Конструктор.
        men = m;
        women = w;
        strcpy(name, n);
        cout << "Сработал конструктор базового класса № 2\n";
    }
 
    Animal(int x, char *n) { //Конструктор.
        men = women = x;
        strcpy(name, n);
        cout << "Сработал конструктор базового класса № 3\n";
    }
 
    int showDim() {
        cout << "Колличество мужских особей -> " << men << "\nКолличество женских особей -> " << women << endl;
        return 0;
    }
 
    int getMen() { return men; }
    int getWoman() { return women; }
    void setMen(int m) { men = m; }
    void setWoman(int w) { women = w; }
    char *getName() { return name; }
 
    virtual int area() {
        cout << "Ошибка: area() должна быть переопределена. \n";
        return 0;
    }
 
    virtual ~Animal() {
        cout << "Сработал виртуальный деструктор\n";
    }
};
 
class Predator : virtual public Animal {
    char style[20];
public:
    Predator();
    Predator ( int m, int w, char *str )  : Animal (m,w, str ) {
        strcpy(style, str);
    }
 
    Predator (int x, char *str) : Animal(x, str) {
        strcpy(style, str);
    }
 
    int area() {
        return getMen() + getWoman();
    }
};
 
class Ancientsd : virtual public Animal {
    char style1[20];
public:
    Ancientsd (int m, int w, char *str) : Animal (m,w, str) {
        strcpy(style1, str);
    }
 
    Ancientsd(int x) : Animal(x,"Неизвестен"){}
 
    int area() {
        return getMen() + getWoman();
    }
};
 
class Dinosaurs : public Ancientsd, virtual public Predator {
    char name_din[20];
public:
    Dinosaurs (int m, int w, char *str) : Ancientsd(m,w,str) {
        strcpy(name_din, str);
    }
 
    int area() {
        return getMen() + getWoman();
    }
};
 
int main() {
    setlocale (LC_ALL, "Russian");
    Animal *shapes[6];
    shapes[0] = &Predator(8,12,"Волк");
    shapes[1] = &Ancientsd(10);
    shapes[2] = &Ancientsd(10,4,"Соблезуб");
    shapes[3] = &Predator(7,"Лиса");
    shapes[4] = &Animal(10,20, "Неизвестно");
    shapes[5] = &Dinosaurs(4,5,"Тиранозавр");
    cout << "\n\n\n";
    for(int i=0; i<6; i++) {
        cout << "Объект класса - " << shapes[i]->getName() << endl;
        cout << "Всего особей -> " << shapes[i]->area() << endl;
        cout << shapes[i]->showDim() << endl;
        cout << endl;
    }
    system("pause");
    return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.11.2013, 19:56     Не могу найти ошибку
Посмотрите здесь:

Не могу найти ошибку C++
Не могу найти ошибку C++
C++ Не могу найти ошибку...
ошибку не могу найти( C++
C++ Не могу найти ошибку
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
sitnik_off88
0 / 0 / 0
Регистрация: 22.11.2013
Сообщений: 7
24.11.2013, 20:01     Не могу найти ошибку #2
У меня в visual studio такая же ошибка. Даже при компиляции простых программ типа "Hello,world". Проблему так и не решил-сменил компилятор. gcc например этот же код обрабатывает без проблем.
Neo4em
0 / 0 / 0
Регистрация: 24.11.2013
Сообщений: 2
24.11.2013, 20:07  [ТС]     Не могу найти ошибку #3
ошибка при компиляции появилась после виртуального наследования.
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
24.11.2013, 20:15     Не могу найти ошибку #4
В Predator нет реализации конструктора по умолчанию.
Yandex
Объявления
24.11.2013, 20:15     Не могу найти ошибку
Ответ Создать тему
Опции темы

Текущее время: 23:50. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru