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

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

Восстановить пароль Регистрация
 
DreamFAW
0 / 0 / 0
Регистрация: 15.06.2012
Сообщений: 4
17.01.2013, 17:26     Двумерный массив в параметре класса #1
Есть класс, одним из параметров которого нужно сделать массив с тремя столбцами и неизвестным количеством строк.
Как потом заполнить этот массив данными, для каждого объекта отдельно?

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
class block {   
    public:
      int x,y,color,B[][3];     
      block(int x0=10, int y0=10, int c=Br+clGreen, int B[2][3]){
            x=x0; y=y0; color=c;} 
   };
 
int main()
{
  init_console();
 
  block(50,10,clYellow,B[2][3]={x,y,1,x+1,y,1});
 
  getch();
  return 0;
}
Когда создаю объект класса block, вылазит ошибка о том, что массив B не был объявлен и несколько ошибок "expected primary-expression before "B" "
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Nikcharn
 Аватар для Nikcharn
71 / 53 / 3
Регистрация: 31.07.2009
Сообщений: 149
17.01.2013, 17:35     Двумерный массив в параметре класса #2
Объявление массива без константы в индексе возможно в случае с динамическими массивами.

Кстати, еще объявление массива с переменной в индексе тоже работает только с динамическими массивами.
UserAK
70 / 70 / 4
Регистрация: 25.12.2012
Сообщений: 189
Записей в блоге: 2
17.01.2013, 18:26     Двумерный массив в параметре класса #3
если может Вы имели ввиду что-то типо того:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
class block {
public:
    int x,y,color,(*B)[3];
    template <int row>
    block(int x0, int y0, int c, int (&_B)[row][3]){
        x=x0; y=y0; color=c;
        B = new int[row][3];
        for(unsigned i=0; i<row; i++){
            B[i][0] = _B[i][0];
            B[i][1] = _B[i][1];
            B[i][2] = _B[i][2];
        }
    } 
};
 
int main()
{
    init_console();
 
    int x(0),y(0);
    int B[2][3]={x,y,1,x+1,y,1};
    block b1(50, 10, clYellow, B);
 
    getch();
    return 0;
}
DreamFAW
0 / 0 / 0
Регистрация: 15.06.2012
Сообщений: 4
17.01.2013, 18:32  [ТС]     Двумерный массив в параметре класса #4
Да, спасибо большое, то что нужно
Yandex
Объявления
17.01.2013, 18:32     Двумерный массив в параметре класса
Ответ Создать тему
Опции темы

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