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

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

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

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

29.11.2013, 10:09. Просмотров 378. Ответов 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++
Код по сути //Interface.cpp #include &quot;Interface.h&quot; void Interface::input() { Teplitsa *kaka; kaka = new Teplitsa; ...

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

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

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

Возвращение массива в качестве результата выполнения метода класса (Kubuntu, netBeans, g++) - C++
Всем привет. Пытаюсь написать свой первый демон на C++ по образу и подобию сделанного на PHP. Столкнулся со следующей проблемой. ...

Динамический массив структуры в качестве параметра функции - C++
Привет! Нужна помощь ( Есть структура struct Embedded { double density; double energy; } есть 2 массива динамический ...

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


Непонятно просто зачем передавать размер а потом
Цитата Сообщение от Stingo Посмотреть сообщение
метод должен определить размерность некоторого переданного ему массива
zss
Модератор
Эксперт С++
6321 / 5905 / 1913
Регистрация: 18.12.2011
Сообщений: 15,181
Завершенные тесты: 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]);
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.11.2013, 15:27     двумерный массив в качестве параметра метода класса
Еще ссылки по теме:

Написать функцию, принимающую в качестве параметра одномерный массив - C++
Запишите и испытайте функцию. Входными параметрами составляемых функций являются одномерные массивы X и (или) Y размером n.Для каждого...

Получить доступ к обьекту класса в друж. функц. этому классу при этом не передавая этот объект в качестве параметра - C++
Допустим имеется класс lass1 для него определена дружественная функция friend1. Вопрос можно ли как то получить доступ к объекту который не...

Массив в качестве элемента данных класса - C++
Допустим, я хочу создать объект, одним из атрибутов которого будет простой одномерный нединамический массив, состоящий, скажем, из 25...

Двумерный массив класса - C++
Помогите, пожалуйста, как создать двумерный массив класса на с++.


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

Или воспользуйтесь поиском по форуму:
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     двумерный массив в качестве параметра метода класса
Ответ Создать тему
Опции темы

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