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

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

Войти
Регистрация
Восстановить пароль
 
Stingo
1 / 1 / 0
Регистрация: 29.11.2013
Сообщений: 10
#1

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

29.11.2013, 10:09. Просмотров 367. Ответов 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 строке откровенная ерунда написана), не понимаю как это сделать, прошу вашей помощи.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.11.2013, 10:09     двумерный массив в качестве параметра метода класса
Посмотрите здесь:

Двумерный массив в качестве параметра функции C++
Как передать метод класса в качестве параметра функции C++
C++ [C++, OpenGL, glut] передача метода класса в качестве параметра функции glutDisplayFunc()
Динамический массив структуры в качестве параметра функции C++
C++ Шаблон класса в качестве параметра другому шаблону
Создать функцию, в качестве параметра получает массив и количество его элементов, возвращает массив, упорядоченный по возрастанию C++
Создание шаблона bool-функции, принимающей в качестве параметра экземпляр класса C++
C++ Передача enum в качестве аргумента метода класса
Возвращение массива в качестве результата выполнения метода класса (Kubuntu, netBeans, g++) C++
C++ Передача члена класса в качестве параметра метода
Передача класса в качестве параметра шаблона C++
C++ Передача метода класса в качестве аргумента внешней функции

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
MrCold
852 / 750 / 71
Регистрация: 11.01.2012
Сообщений: 1,942
29.11.2013, 10:44     двумерный массив в качестве параметра метода класса #2
Дело в том, что отправляя массив в функцию ( в метод )
вам также необходимо передавать его размеры
Варианты


Непонятно просто зачем передавать размер а потом
Цитата Сообщение от Stingo Посмотреть сообщение
метод должен определить размерность некоторого переданного ему массива
zss
Модератор
Эксперт С++
6244 / 5847 / 1891
Регистрация: 18.12.2011
Сообщений: 14,980
Завершенные тесты: 1
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 (); // ничего передавать не надо. Массив и индексы - члены класса
};
Stingo
1 / 1 / 0
Регистрация: 29.11.2013
Сообщений: 10
29.11.2013, 14:12  [ТС]     двумерный массив в качестве параметра метода класса #4
Цитата Сообщение от MrCold Посмотреть сообщение
Дело в том, что отправляя массив в функцию ( в метод )
вам также необходимо передавать его размеры
Варианты


Непонятно просто зачем передавать размер а потом
Про передавать размер и потом выдавать его - это чушь я написал, да. А ссылочка ваша помогла, спасибо.
nexen
187 / 180 / 3
Регистрация: 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]);
Stingo
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]);
Не, тут смысл именно чтобы метод мог обрабатывать несколько разных двумерных массивов.
Yandex
Объявления
29.11.2013, 15:27     двумерный массив в качестве параметра метода класса
Ответ Создать тему
Опции темы

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