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

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

Войти
Регистрация
Восстановить пароль
 
VIPerZ
7 / 7 / 0
Регистрация: 26.02.2011
Сообщений: 69
#1

Указатель на двухмерный массив обьектов - C++

13.08.2013, 09:27. Просмотров 275. Ответов 4
Метки нет (Все метки)

Допустим есть класс:
C++
1
2
3
4
5
class a_type {
int a,b;
public:
a_type(int x, int y) { a = x; b = y}
};
Дальше в коде мне нужно создать указатель на двухмерный массив таких обьектов и выделить под него память с начальной инициализацией через конструктор...
Пробовал разные варианты, но ничего не работает... Та конструкция, которая работает для не указателя - не прокатила
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.08.2013, 09:27     Указатель на двухмерный массив обьектов
Посмотрите здесь:

C++ массив обьектов
программа на массив обьектов C++
C++ массив обьектов std::vector (ошибка)
C++ двухмерный массив
двухмерный массив C++
C++ Передать массив обьектов в метод класса
C++ двухмерный массив
Указатель на двухмерный динамический массив C++
как привильно создать и вызвать конструктор для массив обьектов C++
Как вернуть массив обьектов для дальнейшей работы с ним? C++
Динамический массив обьектов в класе C++
C++ Массив обьектов класса предка и производного

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Croessmah
Модератор
Эксперт CЭксперт С++
 Аватар для Croessmah
12541 / 7103 / 797
Регистрация: 27.09.2012
Сообщений: 17,524
Записей в блоге: 2
Завершенные тесты: 1
13.08.2013, 09:35     Указатель на двухмерный массив обьектов #2
Цитата Сообщение от VIPerZ Посмотреть сообщение
Пробовал разные варианты, но ничего не работает...
Нужен конструктор без параметров
BigLow
55 / 55 / 2
Регистрация: 07.07.2013
Сообщений: 345
13.08.2013, 10:30     Указатель на двухмерный массив обьектов #3
конструктор по умолчанию
C++
1
a_type(int x=0, int y=0) { a = x; b = y}
Tulosba
:)
Эксперт С++
4384 / 3227 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
13.08.2013, 11:21     Указатель на двухмерный массив обьектов #4
C++
1
explicit a_type(int x=0, int y=0): a(x), b(y) {}
Forveg
7 / 7 / 1
Регистрация: 14.08.2013
Сообщений: 20
14.08.2013, 18:00     Указатель на двухмерный массив обьектов #5
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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
#include<iostream>
 
class a_type {
    int a,b;
public:
a_type(int x=5, int y=6) { a = x; b = y; }
friend void print(a_type& obj) { std::cout<<"["<<obj.a<<";"<<obj.b<<"] "; }
};
 
void print_matrix(a_type** p,int incols,int inrows)
{
    int i,j;
    for(i=0;i<inrows;i++)
    { 
        std::cout<<std::endl;
        for(j=0;j<incols;j++)
            print(p[i][j]);
    }
}
 
int main()
{
int cols,rows,i,j,tmpa,tmpb;
std::cout<<"\nrows: ";    std::cin>>rows; // число рядов
std::cout<<"\ncolumns: "; std::cin>>cols; // число столбцов
a_type** a_matrix= new a_type*[rows];     // берем в куче память для массива  
                                          // указателей на a_type
for(i=0;i<rows;i++)
{   
    a_matrix[i]=new a_type[cols]; // берем в куче память для очередного массива (i-го ряда матрицы) 
                                        // его элементы инициализируются через конструктор значениями по умолчанию
    //for(j=0;j<cols;j++)         // закомментирован цикл ручного задания значений          
    //{
    //  std::cout<<"\n["<<i<<";"<<j<<"] :"; std::cin>>tmpa>>tmpb;  
    //  a_matrix[i][j] = a_type(tmpa,tmpb); // вносим объект 
    //}
}
print_matrix(a_matrix,cols,rows);
 
for(i=0;i<rows;i++)
delete[] a_matrix[i]; // освобождаем память, занятую массивом (i-ым рядом матрицы) 
 
delete[] a_matrix; // освобождаем память, занятую массивом указателей
 
std::cout<<std::endl;
system("pause");
return 0;
}
Yandex
Объявления
14.08.2013, 18:00     Указатель на двухмерный массив обьектов
Ответ Создать тему
Опции темы

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