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

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

Восстановить пароль Регистрация
 
_vladimir
1 / 1 / 1
Регистрация: 11.04.2010
Сообщений: 6
11.04.2010, 15:51     Динамический массив с задаваемыми индексами #1
Привет!
Подскажите, пожалуйста, как создать (для начала одномерный)массив-член класса в динамической памяти и чтобы коэффициенты задавались, желательно на с++ без сторонних библиотек.
Вот пример в коде, примерно как-то так, хотя совсем не такО_о:

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()
{
   //а здесь этот  массив удаляется
}
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.04.2010, 15:51     Динамический массив с задаваемыми индексами
Посмотрите здесь:

C++ Не могу найти ошибку (массив с чётными индексами)
C++ Есть ли в С++ массив с символьными индексами?
Можно ли в классе создавать массив переменной длинны. Например динамический массив? C++
C++ Одномерный массив. Найти произведение элементов с четными индексами
Одномерный массив (элементы с четными индексами переписать в массив z.в массиве z поменять местами максимальный и минимальный элементы) C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
M128K145
Эксперт C++
 Аватар для M128K145
8272 / 3491 / 142
Регистрация: 03.07.2009
Сообщений: 10,707
11.04.2010, 19:32     Динамический массив с задаваемыми индексами #2
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;
}
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9373 / 5423 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
11.04.2010, 19:45     Динамический массив с задаваемыми индексами #3
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от M128K145 Посмотреть сообщение
delete mTemp;
Поправочка
C++
1
delete [] mTemp;
_vladimir
1 / 1 / 1
Регистрация: 11.04.2010
Сообщений: 6
16.04.2010, 21:32  [ТС]     Динамический массив с задаваемыми индексами #4
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, можно было задать другую размерность, которую, например, введет пользователь.
Yandex
Объявления
16.04.2010, 21:32     Динамический массив с задаваемыми индексами
Ответ Создать тему
Опции темы

Текущее время: 23:23. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru