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

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

Войти
Регистрация
Восстановить пароль
 
_vladimir
1 / 1 / 1
Регистрация: 11.04.2010
Сообщений: 6
#1

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

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

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

Одномерный массив (элементы с четными индексами переписать в массив z.в массиве z поменять местами максимальный и минимальный элементы) - C++
задан массив x(n).элементы с четными индексами переписать в массив z.в массиве z поменять местами максимальный и минимальный...

Есть ли в С++ массив с символьными индексами? - C++
Типа как в паскале arrayof integer;

Ассоциативный массив с несколькими индексами - C++
Есть структура: struct DATA { int key1; int key2; char *pData; }; Необходим массив таких структур с быстрым...

multi-hash -массив с несколькими индексами - C++
Возможно ли? Для примера, hash_mas == hash_mas == hash_mas А для разнотипных ключей (индексов)? hash_mas == has_mas == has_mas ...

Статический массив, адресация указателями и индексами - C++
Задание написать 2 алгоритма заполнения статического массива из 10 элементов значением квадрата индекса этого элемента. 1) статический...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
M128K145
Эксперт С++
8286 / 3505 / 143
Регистрация: 03.07.2009
Сообщений: 10,706
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
Модератор
Эксперт CЭксперт С++
9530 / 5523 / 932
Регистрация: 25.07.2009
Сообщений: 10,602
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, можно было задать другую размерность, которую, например, введет пользователь.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.04.2010, 21:32
Привет! Вот еще темы с ответами:

Не могу найти ошибку (массив с чётными индексами) - C++
Задача: Введите с клавиатуры данные в массив целого типа, а затем выведите на экран значения элементов массива с чётными...

Можно ли в классе создавать массив переменной длинны. Например динамический массив? - C++
Динамические массивы привлекают больше. :)

динамический массив (Целое число разложить на массив простых множителей) - C++
Доброго времени суток всем. Целое число необходимо разложить на массив простых множителей. Столкнулся с проблемой, мне нужно, чтобы...

Написать функцию принимающую массив и возвращающую указатель на динамический массив - C++
Написать функцию принимающую массив и возвращающую указатель на динамический массив содержащий первые n нaибольших чисел. Как сделать...


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

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

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