Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

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

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

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

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

Передача члена класса в качестве параметра метода - C++
Добрый день. Интересует следующий вопрос: как передать член класса как параметр по значению в метод того же класса? То есть необходимо,...

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

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

Двумерный массив в качестве параметра функции - C++
почему не удаётся передать в качестве параметра двумерный массив? #include &lt;iostream.h&gt; int sum(const int** mas, const int...

Передача класса в качестве параметра шаблона - C++
Имеется два класса, один это однонаправленный итератор, другой это двунаправленный. Двунаправленный получается из однонаправленного. Вот...

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


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


Непонятно просто зачем передавать размер а потом
Про передавать размер и потом выдавать его - это чушь я написал, да. А ссылочка ваша помогла, спасибо.
0
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]);
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]);
Не, тут смысл именно чтобы метод мог обрабатывать несколько разных двумерных массивов.
0
29.11.2013, 15:27
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.11.2013, 15:27
Привет! Вот еще темы с ответами:

Шаблон класса в качестве параметра другому шаблону - C++
Почему у меня не получается сделать так: template &lt;typename T&gt; class A { // .... }; vector&lt;A&gt; Vec;

Как корректно передать в метод шаблонного класса объект шаблонного класса в качестве параметра? - C++
header.h template &lt;class T&gt; class MyVector { public: void swap(MyVector&lt;T&gt;Vector); } template &lt;class T&gt; void...

Как передать метод класса в качестве параметра функции - C++
Это типа &quot;бот&quot;, он работает (&quot;шагает&quot; по заданному полю) #include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;time.h&gt; #include...

Передача enum в качестве аргумента метода класса - C++
Есть класс //class order; class ticket{ enum type_of_place { coupe, general, berth, wagon_lit }_type_of_place; char*...


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

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

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