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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 86, средняя оценка - 4.99
SecretSilent
76 / 76 / 2
Регистрация: 16.02.2010
Сообщений: 632
#1

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

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

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


если нет, то как по-другому это правильно делать?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.04.2011, 22:35
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Массивы объектов (C++):

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

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

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

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

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

Конструктор копировщик объектов, содержащих массивы - C++
Конструктор копировщик который будет создавать объекты в которых есть массивы. Можно просто фрагмент кода.

8
asics
Freelance
Эксперт С++
2848 / 1783 / 144
Регистрация: 09.09.2010
Сообщений: 3,841
01.04.2011, 22:48 #2
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;
}
0
SecretSilent
76 / 76 / 2
Регистрация: 16.02.2010
Сообщений: 632
01.04.2011, 23:01  [ТС] #3
asics, а если мне надо массив из 500 объектов? мне все вручную прописывать?
0
asics
Freelance
Эксперт С++
2848 / 1783 / 144
Регистрация: 09.09.2010
Сообщений: 3,841
01.04.2011, 23:11 #4
Цитата Сообщение от SecretSilent Посмотреть сообщение
а если мне надо массив из 500 объектов? мне все вручную прописывать?
Ну так дело ваше, если не лень, то вперед
0
SecretSilent
76 / 76 / 2
Регистрация: 16.02.2010
Сообщений: 632
01.04.2011, 23:16  [ТС] #5
asics, а нормальный метод есть?
0
Unforgiven_00
60 / 60 / 2
Регистрация: 12.10.2010
Сообщений: 129
01.04.2011, 23:28 #6
Цитата Сообщение от 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
silent_1991
Эксперт С++
4987 / 3044 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
01.04.2011, 23:31 #7
Сначала создать массив объектов, сконструированных по умолчанию, а потом в цикле "переконструировать" каждый из них каким-нибудь методом reconstruct, который делает то же, что и ваш конструктор изначально (это если с динамикой возиться неохота).
1
Mr.X
Эксперт С++
3051 / 1696 / 265
Регистрация: 03.05.2010
Сообщений: 3,867
02.04.2011, 01:19 #8
Если параметры, которые вы хотите передать объектам массива, известны на этапе компиляции, то можно шаблоны использовать:
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
76 / 76 / 2
Регистрация: 16.02.2010
Сообщений: 632
02.04.2011, 08:35  [ТС] #9
Спасибо всем большое!
Unforgiven_00, я так и хотела делать. просто думала, может, другой, "более красивый" метод есть
0
02.04.2011, 08:35
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.04.2011, 08:35
Привет! Вот еще темы с ответами:

Программирование на С++ с использованием классов. Массивы объектов. Наследование - C++
Создать класс окружность, член класса - R. Предусмотреть в классе методы вычисления и вывода сведений о фигуре – площади, длины...

Программирование на С++ с использованием классов. Массивы объектов. Наследование - C++
Помогите с программированием,пожалуйста!!!!!!!!!!!! Создать класс равносторонний треугольник, член класса - длина стороны. ...

Поиск в массиве объектов типа Student по заданному полю (массивы, структуры) - C++
Добрый день! Нужно организовать : Функцию поиска студента по фамилии и поиск его средней арифметической оценок Буду рад любой...

Поиск в массиве объектов типа Student по заданному полю (массивы, структуры) - C++
Добрый вечер. Имею практически готовую программу. Так как не правильно понял задание, нужно немного переделать работу. Нужно : ...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

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