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

Описать класс для реализации двумерного массива - C++

Восстановить пароль Регистрация
 
gagarin0
2 / 2 / 0
Регистрация: 01.10.2010
Сообщений: 22
01.10.2010, 13:14     Описать класс для реализации двумерного массива #1
Хочу сделать класс, который будет описывать поле размером 5х3.
Для этого использую вложенные друг в друга векторы. Но при реализации функций класса компилятор (Борланд С++ 6) выдает ошибки:
Код:

E2235 Member function must be called or its address taken
E2062 Invalid indirection


Вот код:
Код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
typedef  vector< char > fieldlines;
typedef vector< fieldlines > field;
 
class Field
{
        static const int SIZE_X=5, SIZE_Y=3;
        field _field(SIZE_X, vector< char > (SIZE_Y));
public:
        void clear_field(void)
        {
                for(int i=0;i<SIZE_Y;i++)
                        for(int j=0;j<SIZE_X;j++)
                                _field[j][i]='0';
        }
        friend ostream& operator<<(ostream&, Field&);
        char get_symbol(int y, int x)
        {
                return _field[y][x];
        }
};
Подскажите, пожалуйста, что это означает и как с ним бороться!
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.10.2010, 13:14     Описать класс для реализации двумерного массива
Посмотрите здесь:

C++ Создать класс для реализации комплексных чисел в алгебраической форме
C++ Создать класс для реализации комплексных чисел в алгебраической форме
Как описать функции ввода и вывода двумерного массива? C++
Класс для двумерного динамического массива C++
C++ Описать класс для вычисления суммы непарных элементов массива
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
neske
1419 / 786 / 55
Регистрация: 26.03.2010
Сообщений: 2,689
01.10.2010, 14:46     Описать класс для реализации двумерного массива #2
Не буду говорить точно, что ошибка в этом, но не следует обращаться к элементам вектора через индексы, используйте итераторы. Как это сделать с вложенными векторами, точно не знаю.
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 3
01.10.2010, 18:21     Описать класс для реализации двумерного массива #3
neske, Это не ошибка в большинстве случаев. + это удобнее, если вектор двумерный. имхо.
gooseim
Эксперт C++
500 / 404 / 35
Регистрация: 23.09.2010
Сообщений: 1,139
01.10.2010, 18:33     Описать класс для реализации двумерного массива #4
Сообщение было отмечено автором темы, экспертом или модератором как ответ
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
typedef  vector< char > fieldlines;
typedef vector< fieldlines > field;
 
class Field
{
        static const int SIZE_X=5, SIZE_Y=3;
        field _field;
public:
        Field(): _field(SIZE_X, vector< char > (SIZE_Y)) {}
        void clear_field(void)
        {
                for(int i=0;i<SIZE_Y;i++)
                        for(int j=0;j<SIZE_X;j++)
                                _field[j][i]='0';
        }
        friend ostream& operator<<(ostream&, Field&);
        char get_symbol(int y, int x)
        {
                return _field[y][x];
        }
};
gagarin0
2 / 2 / 0
Регистрация: 01.10.2010
Сообщений: 22
01.10.2010, 20:31  [ТС]     Описать класс для реализации двумерного массива #5
gooseim, то есть я его просто не создавал, так получается? Двумерный массив, в смысле...
gooseim
Эксперт C++
500 / 404 / 35
Регистрация: 23.09.2010
Сообщений: 1,139
02.10.2010, 18:00     Описать класс для реализации двумерного массива #6
gagarin0, если конструктор объекта внутри какого-то класса содержит несколько параметров, то его обязательно надо инициализировать в конструкторе этого класса после знака ':'. Иначе просто не работает. Такой синтаксис C++.
Так писать нельзя:
C++
1
2
3
4
class Field
{
        field _field(SIZE_X, vector< char > (SIZE_Y));
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.10.2010, 00:23     Описать класс для реализации двумерного массива
Еще ссылки по теме:

Создать класс для реализации динамического массива C++
Создать класс для реализации комплексных чисел C++
Передача комплексных чисел в производный класс для реализации векторов C++

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

Или воспользуйтесь поиском по форуму:
gagarin0
2 / 2 / 0
Регистрация: 01.10.2010
Сообщений: 22
03.10.2010, 00:23  [ТС]     Описать класс для реализации двумерного массива #7
Ага...ясно...Спасибо, Вам!
Yandex
Объявления
03.10.2010, 00:23     Описать класс для реализации двумерного массива
Ответ Создать тему
Опции темы

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