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

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.67
res
56 / 9 / 1
Регистрация: 05.04.2010
Сообщений: 143
#1

Векторы (в классах) - C++

14.10.2011, 12:12. Просмотров 1147. Ответов 22
Метки нет (Все метки)

Всем здравствуйте.
Никак не разберусь с векторами, а именно:
Как заменить динамический массив на векторы?

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
class Dog
{
public:
        
    // int SetAge(int age) { _age = age; }
    // пока что нужно именно таким методом
    int Age;
};
 
void main()
{
    Dog* sharik = new Dog[4];
    Dog* bobik;
    bobik->Age = 3; // бобику 3 года
 
    for(int i = 0; i<4; ++i)
    {
         sharik[i].Age = bob.Age; // Всем Шарикам столько же лет 
         cout << "Sharik number: " << i << " is: " << sharik[i].Age << " year old\n";
    }
    
    delete []sharik, bobik;
    cin.get();
}
Вывод:
Sharik number: 0 is: 3 year old
Sharik number: 1 is: 3 year old
Sharik number: 2 is: 3 year old
Sharik number: 3 is: 3 year old

Добавлено через 3 часа 10 минут
Никто не знает?)
Dog* sharik = new Dog[4];
как это объявить векторным методом?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.10.2011, 12:12
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Векторы (в классах) (C++):

Определить, какие из этих имен встречаются во всех классах, какие есть хотя бы в двух классах, и какие - только в одном классе - C++
Для каждого из четырех классов указаны имена девочек, обучающихся в них. Определить, какие из этих имен встречаются во всех классах, какие...

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

наследование в классах - C++
всем доброго времени суток ! нужно создать виртуальную функцию для заполнения класса данными и печать данных на экран и переопределить...

Ошибка в классах - C++
Добрый день! Мне необходимо разбить 1 класс на 2: базовый и производный! Я вроде сделал, но вылезает ошибка, что нехватает фигурной...

Fstream в классах - C++
Проблема заключается в том, что я не могу использовать fsream в классе, ибо выдаёт ошибку. Код и текст ошибки ниже. Помогите пожалуйста (мб...

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

22
oxotnik
1590 / 1067 / 33
Регистрация: 21.08.2008
Сообщений: 4,545
Записей в блоге: 1
14.10.2011, 14:27 #16

Не по теме:

Цитата Сообщение от res Посмотреть сообщение
такие дела
дааа.... таки дела... с дуру можно и писюн поломать


Код
void main() 
{
     vector <Dog> pDog(4, Dog(1.3f));
     for(int i=0; i< pDog.size(); ++i) // НЕ выходим за предел
     {
          pDog.at(i).Age = 14; // нету пятого повтора
          cout << pDog.at(i).Age << endl;
     }
     cin.get();
}
0
res
56 / 9 / 1
Регистрация: 05.04.2010
Сообщений: 143
14.10.2011, 14:30  [ТС] #17
oxotnik, Извини, я тебя не пытался задеть.
ты потише братишка, вот в этой ситуаций.
а если не дай бог забуду поставить проверку на размерность?
0
oxotnik
1590 / 1067 / 33
Регистрация: 21.08.2008
Сообщений: 4,545
Записей в блоге: 1
14.10.2011, 14:32 #18
Цитата Сообщение от res Посмотреть сообщение
а если не дай бог забуду поставить проверку на размерность?
ну максимум, что может получиться - большой ядерный взрыв (это если в той области работаешь), а так ну премии лишат, ну заказчик может за углом подкараулить... в общем не заморачивайся, ставь везде vector::size()
1
res
56 / 9 / 1
Регистрация: 05.04.2010
Сообщений: 143
15.10.2011, 11:39  [ТС] #19
Цитата Сообщение от gooseim Посмотреть сообщение
C++
1
vector <Dog> sharik(4, Dog(1.4f));
А как объявить в динамических массивах?
C++
1
Dog *sharik = new Dog(1.4f)[4]...?
0
gooseim
Эксперт С++
508 / 412 / 37
Регистрация: 23.09.2010
Сообщений: 1,159
15.10.2011, 11:53 #20
res
C++
1
2
Dog **sharik = new Dog*[4];
sharik[0] = new Dog(1.4f);
Для нескольких
или
C++
1
Dog *sharik = new Dog(1.4f);
для одного
1
res
56 / 9 / 1
Регистрация: 05.04.2010
Сообщений: 143
15.10.2011, 12:10  [ТС] #21
Цитата Сообщение от gooseim Посмотреть сообщение
res
C++
1
2
Dog **sharik = new Dog*[4];
sharik[0] = new Dog(1.4f);
для одного
Это указатель на указатель? Где я могу в тырнете найти более подробную информацию именно об этой концепций? Как их освобождать? (delete [] sharik; // не освобождает)
0
LosAngeles
Заблокирован
15.10.2011, 12:29 #22
Цитата Сообщение от res Посмотреть сообщение
как это объявить векторным методом?
vector<Dog> vct(4);
0
gooseim
Эксперт С++
508 / 412 / 37
Регистрация: 23.09.2010
Сообщений: 1,159
15.10.2011, 12:31 #23
C++
1
2
3
4
5
6
7
8
Dog **sharik = new Dog*[4];
for(int i=0; i<4; i++)
   sharik[i] = new Dog(1.4f);
 
for(int i=0; i<4; i++)
   delete sharik[i];
 
delete []sharik;
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.10.2011, 12:31
Привет! Вот еще темы с ответами:

Исключения в классах - C++
Здравствуйте. Какими средствами правильней всего сделать обработку исключений в классах? /* например, эта функция */ int...

Protected в классах - C++
#include &lt;iostream&gt; using namespace std; class TPoint{ protected: int x,y; TPoint *t; ...

Конструкторы в классах - C++
Здравствуйте уважаемые форумчане! Прошу Вас помочь мне уяснить работу конструкторов в классах! А точнее что нужно сделать что бы...

Перечисления в классах - C++
Не могу понять почему в классах работают перечисления? Я не могу в классе обьявить константу, но я могу ее за менить перечислением вроде...


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

Или воспользуйтесь поиском по форуму:
23
Yandex
Объявления
15.10.2011, 12:31
Ответ Создать тему
Опции темы

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