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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.89
Stasqw
0 / 0 / 0
Регистрация: 07.05.2011
Сообщений: 4
#1

Изменение размера массива в конструкторе - C++

13.05.2011, 20:56. Просмотров 1194. Ответов 5
Метки нет (Все метки)

Создайте класс matrix полем класса будет массив 10 на 10. Конструктор должен позволять программисту определить реальный размер массива(допустим, сделать его меньше, чем 10 на 10. Вот фрагмент функции main(), которая работает с таким классом:
matrix m1(8,4);
int temp = 1234;
m1.putel(7,4, temp);
temp=m1.getel(7,4);

Не могу понять как в конструкторе изменять размер массива!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.05.2011, 20:56     Изменение размера массива в конструкторе
Посмотрите здесь:

Изменение размера массива C++
C++ Инициализация массива в конструкторе
Инициализация элементов массива в конструкторе C++
C++ инициализация массива char в конструкторе
C++ Задание размера и инициализация массива указателей в конструкторе
Иницилизация динамического массива в конструкторе C++
C++ Изменение размера массива
C++ Изменение размера динамического массива (resize)
Изменение размера массива C++
Изменение размера динамического массива объектов класса C++
Изменение размера массива C++
C++ Изменение размера динамического массива

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Jupiter
Каратель
Эксперт С++
6550 / 3970 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
13.05.2011, 21:01     Изменение размера массива в конструкторе #2
Цитата Сообщение от Stasqw Посмотреть сообщение
Создайте класс matrix полем класса будет массив 10 на 10. Конструктор должен позволять программисту определить реальный размер массива(допустим, сделать его меньше, чем 10 на 10. Вот фрагмент функции main(), которая работает с таким классом:
matrix m1(8,4);
int temp = 1234;
m1.putel(7,4, temp);
temp=m1.getel(7,4);
Не могу понять как в конструкторе изменять размер массива!
что за бред, наверное имеется ввиду по умолчанию создавать 10х10, если в конструктор не переданы параметры

C++
1
2
3
4
5
6
7
8
9
10
11
12
class matrix {
    int ** matr;
    unsigned rows;
    unsigned cols;
public:
    matrix(unsigned row = 10, unsigned col = 10) : rows(row), cols(col), matr(new int * [row])
    {
    for(unsigned i = 0; i < rows; i++)
        matr[i] = new int [cols];
    }
    ...
};
Stasqw
0 / 0 / 0
Регистрация: 07.05.2011
Сообщений: 4
13.05.2011, 21:07  [ТС]     Изменение размера массива в конструкторе #3
А что такое **,просто я недавно изучаю С++
ForEveR
Модератор
Эксперт С++
7958 / 4720 / 319
Регистрация: 24.06.2010
Сообщений: 10,525
Завершенные тесты: 3
14.05.2011, 01:34     Изменение размера массива в конструкторе #4
Stasqw, Указатель на указатель
Stasqw
0 / 0 / 0
Регистрация: 07.05.2011
Сообщений: 4
14.05.2011, 07:49  [ТС]     Изменение размера массива в конструкторе #5
а можно без указателей решить эту задачу?Указатели я еще не изучал.
adico
13 / 13 / 1
Регистрация: 24.02.2011
Сообщений: 64
14.05.2011, 09:02     Изменение размера массива в конструкторе #6
Без указателей не получится, потомучто нельзя создавать массив, размером которого является неконстантное значение.
Например так делать нельзя.
C++
1
2
int size;
int mass[size][size];
Так что для решения этой задачи вам придется, прочитать про указатели.
Yandex
Объявления
14.05.2011, 09:02     Изменение размера массива в конструкторе
Ответ Создать тему
Опции темы

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