Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/8: Рейтинг темы: голосов - 8, средняя оценка - 4.75
1 / 1 / 2
Регистрация: 11.04.2010
Сообщений: 6

Динамический массив с задаваемыми индексами

11.04.2010, 15:51. Показов 1603. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Привет!
Подскажите, пожалуйста, как создать (для начала одномерный)массив-член класса в динамической памяти и чтобы коэффициенты задавались, желательно на с++ без сторонних библиотек.
Вот пример в коде, примерно как-то так, хотя совсем не такО_о:

Mas.h - файл
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#pragma once
namespace xz
{
   сlass Temp;
   class Mas
   {
      private:
         int mN;
         Temp * mTemp;
         //Здесь каким-то чудо образом объявляется массив
         //Temp * mTemp[mN]; ??? //неизвестное число элементов
      public:
         Mas(int theN);
         ~Mas();
   };
}
Mas.cpp - файл
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include "Temp.h"
#include "Mas.h"
using namespace xz;
 
Mas::Mas(int theN): mN(theN)
{
   //здесь какимто чудо образом создается массив
   for(int i=0; i<mN; i++)
   {
      mTemp  = new Temp();
      //mTemp[mN] = mTemp; ???
   }
}
 
Mas::~Mas()
{
   //а здесь этот  массив удаляется
}
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
11.04.2010, 15:51
Ответы с готовыми решениями:

Вывести динамический массив вместе с индексами!
Подскажите пожалуйста!Есть созданий динамический массив, к которому можно обращаться по индексу. Как можно вывести весь массив, вместе с...

Динамический массив с отрицательными индексами
Мне нужен динамический массив с отрицательным порядком элементов, нигде не написано как его создать, может здесь кто-то знает? Иначе...

Массив с задаваемыми в процессе работы пределами
Можно ли как-то менять пределы массива в запущенном приложении? Т.е. начало и конец. Пишется софт - курсовая. Построение графиков. Так...

3
Эксперт JavaЭксперт С++
 Аватар для M128K145
8384 / 3617 / 419
Регистрация: 03.07.2009
Сообщений: 10,709
11.04.2010, 19:32
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#pragma once
namespace xz
{
   сlass Temp;
   class Mas
   {
      private:
         int mN;
         Temp * mTemp; 
      public:
         Mas(int theN);
         ~Mas();
   };
}
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include "Temp.h"
#include "Mas.h"
using namespace xz;
 
Mas::Mas(int theN): mN(theN)
{
   mTemp  = new Temp[mN];
   for(int i=0; i<mN; i++)
      mTemp[i]  = new Temp();
}
 
Mas::~Mas()
{
   for(int i=0; i<mN; i++)
      delete mTemp[i];
   delete mTemp;
}
1
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
 Аватар для easybudda
12843 / 7592 / 1766
Регистрация: 25.07.2009
Сообщений: 13,973
11.04.2010, 19:45
Лучший ответ Сообщение было отмечено как решение

Решение

Цитата Сообщение от M128K145 Посмотреть сообщение
delete mTemp;
Поправочка
C++
1
delete [] mTemp;
1
1 / 1 / 2
Регистрация: 11.04.2010
Сообщений: 6
16.04.2010, 21:32  [ТС]
2M128K145
Не работает этот код, ошибки в 9 и 15 строках(Cpp).
Пожалуйста, по возможности, давайте к коду пояснения, я еще и разобраться хочу
И еще, если будет рабочий код - это хорошо, но как потом обращаться к элементам этого массива непонятно. Например, когда я использую просто дин. массив без задаваемых коэф. то обращаюсь к нему так: mMas[i]->..., насколько я помню по книгам к массиву с задаваемыми коэф. другое обращение.

Еще раз на примере объясню что мне нужно:

Mas.h
C++
1
2
3
4
5
6
7
8
9
10
11
   сlass Temp;
   class Mas
   {
      private:
         Temp * mTemp;
         Temp * mTemp[10];
      public:
         Mas();
         ~Mas();
         void SetNum(int theNum);
   };
Mas.cpp
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
#include "Temp.h"
#include "Mas.h"
 
Mas::Mas()
{
   for(int i=0; i<10; i++)
   {
      mTemp  = new Temp();
      mTemp[i] = mTemp;
   }
   mTemp = 0;
}
 
Mas::~Mas()
{
   for(int i=0; i<10; i++)
      delete mTemp[i];
}
 
//////////////////////////Как использовать//////////////////////////////////////////
void Mas::SetNum(int theNum)
{
   for(int i=0; i<10; i++)
      mTemp[i]->SetNumber(theNum+i);
}
Нужно тоже самое, только чтобы вместо размерности 10, по ходу выполнения программы и подключения Mas.h, можно было задать другую размерность, которую, например, введет пользователь.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
16.04.2010, 21:32
Помогаю со студенческими работами здесь

Задан массив А(9).найти произведение чисел с четными индексами и сумму с нечетными индексами.
Задан массив А(9).найти произведение чисел с четными индексами и сумму с нечетными индексами.

Массив содержащий 10 случайных чисел выводится на экран все числа с четными индексами и отдельно с нечетными индексами.
массив содержащимся 10 случайных чисел выводится на экран все числа с четными индексами и отдельно с нечетными индексами.

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

Сделать динамический массив структур, причем в структуре так же существует динамический массив
Добрый день. Есть такая пзадача: нужно сделать динамический массив структур, причем в структуре так же существует динамический массив....

Динамический массив ,элементами которого являются объекты класса динамический массив
Доброго времени суток, захотел создать динамический массив ,элементами которого являются объекты класса динамический массив, если...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! */ #include <iostream> #include <stack> #include <cctype>. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru