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

Статические поля и unresolved символы - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Написать программу для обработки массива фиксированного размера http://www.cyberforum.ru/cpp-beginners/thread853408.html
Дана целочисленная квадратная матрица размером NxM. Определить: 1) сумму элементов в тех столбцах, которые не содержат отрицательных элементов; 2) минимум среди сумм модулей элементов диагоналей, параллельной побочной диагонали матрицы. Указания! 1. Написать функцию для ввода текущего размера массива с проверкой корректности вводимых данных. 2. Написать функции для заполнения массива...
C++ Алгоритм Флойда-Уоршелла [для нахождения кратчайших путей] Дан ориентированный взвешенный граф. По его матрице смежности нужно для каждой пары вершин определить, существует кратчайший путь между ними или нет. Формат входных данных В первой строке входного файла записано единственное число N (1 <= N <= 100) - количество вершин графа. В следующих N строках по N чисел - матрица смежности графа (j-ое число в i-ой строке соответствует весу ребра из вершины... http://www.cyberforum.ru/cpp-beginners/thread853397.html
C++ работа с текстовыми файлами (напечатать все строки , длина которых меньше заданного числа)
дан текстовый файл. напечатать все строки , длина которых меньше заданного числа. замечание :двоичные файлы создаются програамным путем . текстовые файлы нужно предварительно создать в тексттовом редакторе например "блокнот".
C++ Не правильно работает if C++
Ребята, привет. Возник такой вопрос..В программе выполняю следующую вещь: f1= Have_Point(p1); f2= Have_Point(p2); f3= Have_Point(p3); f4 = Have_Point(p4); if(f1 == true && f2 == true && f3 == true && f4 == true)//Т.е все точки не принадлежат области { sX.Min].Min = sX.Min].Min +1; sY.Min = sY.Min +1;
C++ Как сделать динамические массивы вместо обычных? Используя функции http://www.cyberforum.ru/cpp-beginners/thread853339.html
Как сделать динамические массивы вместо обычных? Используя функции. Для введения одной матрицы нужна одна функция? т.е. чтобы ввести 2 матрицы, нужны 2 функции? А что если нужно ввести с клавиатуры количество матриц? помогите #include <iostream> #include <conio.h> #include <stdio.h>
C++ <regex> гайд Можно ссылку на нормальный урок/инструкцию по std::regex? Сам в интернете так ничего и не нашел, с регулярками знаком по python'у. подробнее

Показать сообщение отдельно
monstro
1 / 1 / 0
Регистрация: 30.03.2013
Сообщений: 28

Статические поля и unresolved символы - C++

01.05.2013, 13:18. Просмотров 489. Ответов 9
Метки (Все метки)

пытаюсь создать модель аквариума на с++ ...использую в качестве аквариума класс со статическими полями...при компиляции пишет "Ошибка 9 error LNK1120: неразрешенных внешних элементов: 8" тоесть unresolved... что нужно сделать? приведу код если если пригодиться

сам класс
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
#pragma once
 
#include <iostream>
#include <vector>
#include "Inhabitant.h"
#include "Animal.h"
#include "Fish.h"
#include "Plant.h"
 
using namespace std;
 
class Aquarium
{
public:
     static double Volume;
    
     static double Temperatur;
 
     static double PH;
 
     static double Contamination;
 
     static bool Filled;
 
     static double Korm;
 
     static int Size;
 
     static Inhabitant* Inhabitants[];
 
};

вот где используется
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
#include "Animal.h"
#include "Plant.h"
#include "Aquarium.h"
#include <iostream>
 
using namespace std;
 
Animal::Animal(){ Entity = animal; }
 
void Animal::Show()
{
    cout << "Состояние животного под именем: " << Name << endl <<
        "Животное типа: " << AnimalType << endl << 
        "Состояние здоровья: " << Hp << " (" << Health << ") " << endl <<
        "Состояние насыщения: " << Satiety << " (" << Hunger << ") " << endl;
}
 
void Animal::Settle()
{
    cout << "Введите имя нового животного (1..10): \t";
    cin >> Name;
 
    cout << endl << "Выберите тип животного" << endl;
    cout << "1: Улитка" << endl << 
        "2: Моллюск" << endl << 
        "3: Морской конек" << endl;
 
    char num;
    cin >> num;
 
    switch (num)
    {
    case('1'): AnimalType = cochlea;
        NatureVolume = 6;
        NatureTemperaturMin = 18;
        NatureTemperaturMax = 28;
        NaturePHMin = 4;
        NaturePHMax = 6.5;
        break;
    case('2'): AnimalType = mollusk;
        NatureVolume = 10;
        NatureTemperaturMin = 10;
        NatureTemperaturMax = 42;
        NaturePHMin = 4;
        NaturePHMax = 6.5;
        break;
    case('3'): AnimalType = hippocampus;
        NatureVolume = 2;
        NatureTemperaturMin = 24;
        NatureTemperaturMax = 26;
        NaturePHMin = 5;
        NaturePHMax = 8;
        break;
    default:
        cout << "Вы ввели неправильный номер, животное по умолчанию стало улиткой" << endl;
        AnimalType = cochlea;
        NatureVolume = 6;
        NatureTemperaturMin = 18;
        NatureTemperaturMax = 28;
        NaturePHMin = 4;
        NaturePHMax = 6.5;
        break;
    }
 
    double sumvolume = 0;
    for(int i = 0; i < Aquarium::Size; i++)
    {
        sumvolume += Aquarium::Inhabitants[i]->NatureVolume;
    }
 
    if(NatureVolume + sumvolume <= Aquarium::Volume && Aquarium::Filled == false)
    {
        Aquarium::Inhabitants[Aquarium::Size] = this;
        Aquarium::Size++;
    }
    else
    {
        cout << "Вы не можете подселить животное в аквариум, создайте новый!" << endl;
        Aquarium::Filled = true;
    }
 
    Hp = 100;
    Health = healthy;
 
    Satiety = 100;
    Hunger = not;
}
 
void Animal::Eat()
{
    if(Aquarium::Korm > 0)
    {
        Satiety += Aquarium::Korm / Aquarium::Size;
        Hp += Aquarium::Korm*2 / Aquarium::Size;
 
        Aquarium::Korm -= Aquarium::Korm / Aquarium::Size;
    }
    else Satiety -= 5;
 
    Update();
 
}
 
void Animal::Contaminate()
{
    if(Satiety >= 0 && Satiety < 30)
        Aquarium::Contamination += 4;
    if(Satiety >=30 && Satiety < 60)
        Aquarium::Contamination += 8;
    if(Satiety >= 60 && Satiety <= 100)
        Aquarium::Contamination += 12;
 
    Update();
}
 
Animal::~Animal()
{
 
}
 
void Animal::Update()
{
    if(Satiety > 100) Satiety = 100;
    if(Hp > 100) Hp = 100;
 
    if(Satiety > 80 && Satiety <= 100) Hunger = not;
    if(Satiety > 40 && Satiety <= 80) Hunger = low;
    if(Satiety <= 40) Hunger = big;
 
    if(Hunger == low) Hp -= 5;
    if(Hunger == big) Hp -= 15;
 
    if(Hp > 50 && Hp <= 100) Health = healthy;
    if(Hp > 0 && Hp <= 50) Health = ill;
    if(Hp <= 0) Health = dead;
 
 
    if(Aquarium::Contamination > 40) Hp -= 5;
    if(Aquarium::Contamination > 80) Hp -= 10;
 
    if(Aquarium::Temperatur < NatureTemperaturMin || Aquarium::Temperatur > NatureTemperaturMax)
        Hp -= 10;
    else 
        Hp += 4;
 
    if(Aquarium::PH < NaturePHMin || Aquarium::PH > NaturePHMax)
        Hp -= 10;
    else 
        Hp += 4;
 
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 03:54. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru