Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/3: Рейтинг темы: голосов - 3, средняя оценка - 5.00
1 / 1 / 0
Регистрация: 29.11.2013
Сообщений: 10
1

двумерный массив в качестве параметра метода класса

29.11.2013, 10:09. Просмотров 569. Ответов 5
Метки нет (Все метки)


Добрый день
Есть проблемка, попробую упростить условия по максимуму:
В программе меется некоторый класс, у этого класса есть метод, этот метод должен определить размерность некоторого переданного ему массива, массивов этих в программе несколько, все они двухмерные.

Кликните здесь для просмотра всего текста
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
//допустим, это массивы
int arr3x3 [3][3] = {{3,3,3},{3,3,3},{3,3,3}};
int arr4x4 [4][4] = {{4,4,4,4},{4,4,4,4},{4,4,4,4},{4,4,4,4}};
int arr5x5 [5][5] = {{5,5,5,5,5},{5,5,5,5,5},{5,5,5,5,5},{5,5,5,5,5},{5,5,5,5,5}};
 
//это класс
class Class
{
    public: 
    void Method (int x, int arr[x][x])
};
void Class::Method(int x, int arr[x][x])
    {
           cout<<"Array size: "<< x;
    }
 
int main() {
        Class.Method (5, arr5x5);
              }

Так оно, конечно же, не работает, проблема в том, чтобы задать в качестве параметра метода динамический массив (в 11 строке откровенная ерунда написана), не понимаю как это сделать, прошу вашей помощи.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
29.11.2013, 10:09
Ответы с готовыми решениями:

Передача метода класса в качестве параметра для метода другого класса
Здравствуйте, Передо мной стоит такая задача. Необходимо разработать механизм, который бы мог...

Передача члена класса в качестве параметра метода
Добрый день. Интересует следующий вопрос: как передать член класса как параметр по значению в метод...

Указатель на объект в качестве параметра вызываемого метода класса
Код по сути //Interface.cpp #include &quot;Interface.h&quot; void Interface::input() { Teplitsa *kaka;...

[C++, OpenGL, glut] передача метода класса в качестве параметра функции glutDisplayFunc()
Пишу программу для обхода бинаронго дерева поиска. Программа написана и кажется даже работает, но...

5
870 / 769 / 174
Регистрация: 11.01.2012
Сообщений: 1,942
29.11.2013, 10:44 2
Дело в том, что отправляя массив в функцию ( в метод )
вам также необходимо передавать его размеры
Варианты


Непонятно просто зачем передавать размер а потом
Цитата Сообщение от Stingo Посмотреть сообщение
метод должен определить размерность некоторого переданного ему массива
1
Модератор
Эксперт С++
10395 / 8667 / 5245
Регистрация: 18.12.2011
Сообщений: 23,187
29.11.2013, 10:55 3
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
class Class
{
    private:
      int M;// к-во строк
      int N;// к-во столбцов
      int ** arr;
    public: 
      Class(int n,int m)
      {
           N=n;M=m;
           arr=new int*[M];
           for(int i=0;i<M;i++)
                arr[i]=new int[N];
      }
      ~Class()
      {
          for(int i=0;i<M;i++)
             delete[] arr[i];
          delete[] arr;
      }
    void Method (); // ничего передавать не надо. Массив и индексы - члены класса
};
0
1 / 1 / 0
Регистрация: 29.11.2013
Сообщений: 10
29.11.2013, 14:12  [ТС] 4
Цитата Сообщение от MrCold Посмотреть сообщение
Дело в том, что отправляя массив в функцию ( в метод )
вам также необходимо передавать его размеры
Варианты


Непонятно просто зачем передавать размер а потом
Про передавать размер и потом выдавать его - это чушь я написал, да. А ссылочка ваша помогла, спасибо.
0
187 / 180 / 25
Регистрация: 27.01.2012
Сообщений: 1,335
29.11.2013, 14:19 5
Stingo, размер массива, который создан не через new вроде бы можно определить так:
C++
1
2
int massive[10][10];
int n = sizeof(massive), m = sizeof(massive[0]);
0
1 / 1 / 0
Регистрация: 29.11.2013
Сообщений: 10
29.11.2013, 15:27  [ТС] 6
Цитата Сообщение от nexen Посмотреть сообщение
Stingo, размер массива, который создан не через new вроде бы можно определить так:
C++
1
2
int massive[10][10];
int n = sizeof(massive), m = sizeof(massive[0]);
Не, тут смысл именно чтобы метод мог обрабатывать несколько разных двумерных массивов.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
29.11.2013, 15:27

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь или здесь.

Двумерный массив в качестве параметра функции
почему не удаётся передать в качестве параметра двумерный массив? #include &lt;iostream.h&gt; int...

Почему в качестве параметра метода main() мы передаём пустой строчный массив?
Добрый Вечер!!! Скажите Пожалуйста, почему в качестве параметра метода main() мы передаём пустой...

Создать функцию EvenColReport, которая принимает в качестве параметра двумерный массив целых чисел (объявлен как указате
Создать функцию EvenColReport, которая принимает в качестве параметра двумерный массив целых чисел...

Enum в качестве параметра метода
Уважаемые форумчане ! Совершенно неожиданно для меня вызвало трудности передачи Enum в качестве...


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

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

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