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

Почему все экземпляры класса в векторе имеют абсолютно одни и те же характеристики? - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Постройте таблицу значений функции y=f(x) для х принадлежит [a, b] с шагом h http://www.cyberforum.ru/cpp-beginners/thread1133064.html
Постройте таблицу значений функции y=f(x) для хϵ с шагом h. Помогите с кодом.
C++ Функция, которая получает два параметра и возвращает результат деления первого параметра на второй Тут такая задача: написать функцию, которая получает два параметра тип unsigned short int и возвращает результат деления первого параметра на второй. Функция не должна выполнять операцию деления, если второе число равно 0, но в этом случае она должна возвратить значение - 1. Я попробовал реализовать так: #include <iostream> short int Divider( unsigned short int ValOne, ... http://www.cyberforum.ru/cpp-beginners/thread1133060.html
C++ Написать функцию, сдвигающую влево свой аргумент
Привет! Делаю задачи по книге, не могу понять как решить следующую. "Создайте перегружаемую функцию rotate(), которая циклический сдвигает влево свой аргумент и возвращает результат. Перегрузите её так, чтобы она работала с целыми и длинными целыми. (Сдвиг по кольцу аналогичен обычному сдвигу, за исключением того, что выдвигаемый с одного конца слова бит появляется на другом конце)" Хотя бы...
C++ Получение данных из командной строки
#include<iostream> using std::cout;using std::endl; int main(int argc, char *argv){ cout<<"argc="<<argc<<endl; for (int i=0; i<argc; ++i) { cout<<argv<<endl; } return 0; } Данный код приведен в учебнике но не компилируется. Это одна из тем в которой я почти не чего не понял, прошу помощи.
C++ Класс Строка http://www.cyberforum.ru/cpp-beginners/thread1133033.html
Составить описание класса для работы со списками строк (строки произвольной длины), с операциями -включения в список, -удаления из списка элемента с заданным значением данного, -удаления всего списка или конца списка, начиная с заданного элемента. Заранее спасибо.
C++ Возможность существования треугольника по сторонам Определить возможность существования треугольника по сторонам. Треугольник существует только тогда, когда сумма любых двух его сторон больше третьей. Дано: a, b, c – стороны предполагаемого треугольника. Требуется сравнить длину каждого отрезка с суммой двух других. Если хотя бы в одном случае отрезок окажется больше суммы двух других, то треугольника с такими сторонами не существует. ... подробнее

Показать сообщение отдельно
mustimur
268 / 222 / 57
Регистрация: 22.11.2013
Сообщений: 832
Записей в блоге: 1
29.03.2014, 20:46     Почему все экземпляры класса в векторе имеют абсолютно одни и те же характеристики?
То что вы не дали дописал на скорую руку, а что-то удалил, чтоб не отрабатывать... Вообщем вот код:
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
#include <iostream>
#include <time.h>
#include <vector>
 
using namespace std;
enum Sex {male, female};
int randomize(int limit);
 
class Animal
{
public:
    Animal();
    ~Animal(){;}
    
    int getSpeed(){return speed;}
    int getStrength(){return strength;}
    int getSkill(){return skill;}
    int getIntelligence(){return intelligence;}
    bool full;      //bellyfull
    //Animal natureSelection(Animal *animals[]);
private:
    int age;        //1...10
    Sex sex;        //male, female
    
    int hungry;
    //genome------------------
    int speed;          //1...10 by random
    int strength;       //1...10 by random
    int skill;          //1...10 by random
    int intelligence;   //1...10 by random
    //genome------------------
    Sex randSex(){return male;}
};
 
Animal::Animal()
{
    this->age = 1;
    this->sex = randSex();
    this->full = false;
    this->hungry = 0;
    this->speed = randomize(11);
    this->strength = randomize(11);
    this->skill = randomize(11);
    this->intelligence = randomize(11);
}
 
int randomize(int limit)
{
    int res;
    do
    {res = rand() % limit;}
    while(res == 0);
    return res;
}
 
int main ()
{
    const int r=10;
        srand( (unsigned)time( NULL ) );
    vector <Animal> animals (r);
    for (int i=0 ; i<r;++i) cout<<animals[i].getSpeed()<<"   "<<animals[i].getSkill() <<"   "<<animals[i].getStrength() <<"   "<<animals[i].getIntelligence() <<endl;
    system ("Pause");
    return 0;
}
И вот результат:
Почему все экземпляры класса в векторе имеют абсолютно одни и те же характеристики?
 
Текущее время: 18:09. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru