Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.76/137: Рейтинг темы: голосов - 137, средняя оценка - 4.76
 Аватар для SecretSilent
81 / 81 / 9
Регистрация: 16.02.2010
Сообщений: 637

Массивы объектов

01.04.2011, 22:35. Показов 27697. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
у меня в классе имеется конструктор с параметрами. как мне создать массив объектов, вызывая при этом этот конструктор? к примеру
C++
1
Neuron RNN_1(N, Linear)[P];
будет ли верным?
т.е. Neuron - мой тип данных
RNN_1(N, Linear)[P] - P объектов этого типа с параметрами N и Linear.


если нет, то как по-другому это правильно делать?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
01.04.2011, 22:35
Ответы с готовыми решениями:

Массивы объектов в С++
Как работать с массивом объектов (классы)? Приведите пожалуйста какой-то простой пример . Заранее огромное спасибо .

Массивы объектов
class CPhone { int a,b; public: CPhone(int a1,int b1):a(a1),b(b1){} }; CPhone tel={12,23,34,45}; Какое значение имеет tel.b? ...

Динамические массивы объектов
Здравствуйте,у меня возникли не большие проблемы с программной и я не могу понять как мне двигаться дальше. Прошу помочь с этим. Суть...

8
Freelance
Эксперт С++
 Аватар для asics
2891 / 1826 / 356
Регистрация: 09.09.2010
Сообщений: 3,841
01.04.2011, 22:48
SecretSilent, Типо этого ?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iostream>
 
class Data{
private:
  int a_, b_;
public:
  Data(int a, int b) : a_(a), b_(b){}
};
 
int main(){
  const size_t N = 2;
  Data a[N] = {Data(1, 2), Data(3, 4)};
  return 0;
}
1
 Аватар для SecretSilent
81 / 81 / 9
Регистрация: 16.02.2010
Сообщений: 637
01.04.2011, 23:01  [ТС]
asics, а если мне надо массив из 500 объектов? мне все вручную прописывать?
0
Freelance
Эксперт С++
 Аватар для asics
2891 / 1826 / 356
Регистрация: 09.09.2010
Сообщений: 3,841
01.04.2011, 23:11
Цитата Сообщение от SecretSilent Посмотреть сообщение
а если мне надо массив из 500 объектов? мне все вручную прописывать?
Ну так дело ваше, если не лень, то вперед
0
 Аватар для SecretSilent
81 / 81 / 9
Регистрация: 16.02.2010
Сообщений: 637
01.04.2011, 23:16  [ТС]
asics, а нормальный метод есть?
0
60 / 60 / 17
Регистрация: 12.10.2010
Сообщений: 129
01.04.2011, 23:28
Цитата Сообщение от SecretSilent Посмотреть сообщение
asics, а нормальный метод есть?
Можно еще так
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
 
class Data{
private:
  int a_, b_;
public:
  Data(int a, int b) : a_(a), b_(b){}
};
 
int main(){
  const size_t N = 500;
  Data* a[N];
  for(int i=0; i<N; i++)
      a[i] = new Data(i, i+1); //например
  return 0;
}
2
Эксперт С++
5058 / 3118 / 271
Регистрация: 11.11.2009
Сообщений: 7,044
01.04.2011, 23:31
Сначала создать массив объектов, сконструированных по умолчанию, а потом в цикле "переконструировать" каждый из них каким-нибудь методом reconstruct, который делает то же, что и ваш конструктор изначально (это если с динамикой возиться неохота).
1
Эксперт С++
 Аватар для Mr.X
3225 / 1752 / 436
Регистрация: 03.05.2010
Сообщений: 3,867
02.04.2011, 01:19
Если параметры, которые вы хотите передать объектам массива, известны на этапе компиляции, то можно шаблоны использовать:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
/////////////////////////////////////////////////////////////////////////////////////////
#include <iostream>
/////////////////////////////////////////////////////////////////////////////////////////
template<int N>
struct  A
{
    static const int n_ = N;
    //-----------------------------------------------------------------------------------
    A()
    {
        std::cout << n_
                  << std::endl;
    }
};
 
/////////////////////////////////////////////////////////////////////////////////////////
int main()
{
    A<5>   arr_5   [5]; 
    A<10>  arr_10  [10];    
}
Добавлено через 44 минуты
Ну а при использовании векторов можно для создания их элементов любые конструкторы вызывать:
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
/////////////////////////////////////////////////////////////////////////////////////////
#include <iostream>
#include <vector>
/////////////////////////////////////////////////////////////////////////////////////////
struct  A
{
    int  a_;
    int  b_;
    //-----------------------------------------------------------------------------------
    A(int  a, int  b) : a_(a), b_(b)
    {
        std::cout << a_
                  << '\t'
                  << b_
                  << std::endl;
    }
    //-----------------------------------------------------------------------------------
    A(const A&  a)
    {
        a_ = a.a_;
        b_ = a.b_;
        std::cout << "copy "
                  << a_
                  << '\t'
                  << b_
                  << std::endl;
    }
};
 
/////////////////////////////////////////////////////////////////////////////////////////
typedef std::vector<A>  A_vect;
/////////////////////////////////////////////////////////////////////////////////////////
int main()
{
    A_vect  a_1_2(5,  A(1, 2)); 
    A_vect  a_3_4(10, A(3, 4));     
}
1
 Аватар для SecretSilent
81 / 81 / 9
Регистрация: 16.02.2010
Сообщений: 637
02.04.2011, 08:35  [ТС]
Спасибо всем большое!
Unforgiven_00, я так и хотела делать. просто думала, может, другой, "более красивый" метод есть
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
02.04.2011, 08:35
Помогаю со студенческими работами здесь

Массивы дочерних объектов
У меня есть родительский класс Loop и дочерние от него классы Detector и Panel. int main () { Panel a, b, c; vector &lt;Loop...

Массивы объектов. Наследование
Здравствуйте! Скоро экзамен, а я никак не могу решить эту задачу, может кто-то поможет? Вот условие: Создать класс окружность, член...

Массивы объектов и обращение с ними
Вечер добрый мучаюсь с указателями, пытаясь выполнить лабораторную возникла проблема во время работы с массивами в коде своей...

Массивы объектов класса + наследование
Здравствуйте! Пробелмка такая! есть массив обьектов класса CList и наследник этого класса класс Mark как сделать так чтобы у них был типо...

Можно ли создавать массивы объектов?
Можно ли создавать массивы объектов?


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru