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

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

Войти
Регистрация
Восстановить пароль
 
iKarma
9 / 9 / 0
Регистрация: 17.10.2011
Сообщений: 114
#1

Возврат массива из класса - C++

20.12.2011, 02:30. Просмотров 698. Ответов 2
Метки нет (Все метки)

вот класс в котором есть массив а
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
class Population1
 {
 public:
 Population1(int,int);
 ~Population1();
 int ProvLife(int, int);
 void DeathOrLife();
 void CreateArray();
   // unsigned short** Output(){return a};
 private:
 unsigned short** a;
   //long stepper;
   int Xdemen, Ydemen;
};]
в классе происходит всякая реализация этого массива он заполняется числами, и как мне его возратить из классе и передать другому массиву, который будет рисовать, т.е. как мне возвратить этот массив из класса?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.12.2011, 02:30     Возврат массива из класса
Посмотрите здесь:

Возврат vector из класса - C++
Здравствуйте. Из класса ячеек нужно вернуть номера соседних клеток. Думал сделать через вектор. но возникла проблема при создании...

Возврат функцией экземпляра класса - C++
Подскажите, будет ли корректной с точки зрения выделения памяти и всего прочего такая запись: MyObject fun(....) { myObject Obj =...

Возврат значения объектом класса - C++
Может ли экземпляр класса возвращать значение своего поля без обращения к полю напрямую например class MyClass { int val = 5;...

Инициализация класса, возврат значений - C++
Сама задача: Реализовать класс Rectangle. Класс должен хранить координаты, а так же длину и ширину прямоугольника. Предусмотреть...

Возврат объекта класса из функции - C++
Имеется следующий код: #include "stdafx.h" #include <iostream> using namespace std; /*Задача: Определить класс список...

Возврат копии структуры из другого класса - C++
Как можно копию структуры из одного класса передать в другой? (именно чтоб она изначально в private была) Сам только до такой вариант...

Виртуальная функция и возврат объекта класса - C++
Доброго времени суток! Столкнулся с проблемой. Есть переопределенный оператор умножения в родительском классе. virtual CComplex...

возврат копии обьекта класса из метода - C++
Привет всем. Есть класс ниже в нём operator+. Помогите компилятор выдаёт ворнинг warning C4172: returning address of local variable or...

Возврат массива - C++
Не спрашивайте зачем я это делаю, если можно просто использовать strcpy. char tostrcpy(char *to, char *from); int main(int i) { ...

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

Возврат массива из функции - C++
В объекте есть массив int state;, который мне нужно из него вытащить. Вижуал показывал ошибку, когда я пытался вернуть указатель state в...

Возврат массива из функции - C++
Здравствуйте, Не пойму почему не работает данный код. Пишет cannot convert 'std::string*' to 'int*' in return По теории я жду...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Gepar
1175 / 531 / 20
Регистрация: 01.07.2009
Сообщений: 3,517
20.12.2011, 02:55     Возврат массива из класса #2
iKarma, да никак, сделайте второй класс дружественным (friend) для первого и пусть второй класс просто считывает данные из вашего массива a или копирует его себе куда надо.
greeezz
272 / 165 / 4
Регистрация: 10.07.2011
Сообщений: 441
20.12.2011, 07:25     Возврат массива из класса #3
Цитата Сообщение от Gepar Посмотреть сообщение
да никак
.
вообще можно.. только делать так на мой взгляд катострофически опасно, даже бы сказал нельзя вообще

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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
#include <iostream>
using std::cout;
using std::endl;
 
#include <iomanip>
using std::setw;
 
class Population1 {
public:
    Population1(int, int);
    ~Population1();
    int ProvLife(int, int);
    void DeathOrLife();
    void CreateArray();
    // unsigned short** Output(){return a};
 
    unsigned short **getPtrToMyMatrix();
 
private:
    unsigned short** a;
    //long stepper;
    int Xdemen, Ydemen;
};
 
Population1::Population1(int x, int y) :
        Xdemen(x), Ydemen(y) {
}
 
void Population1::CreateArray() {
    a = new unsigned short*[Xdemen];
    for (int i = 0; i < Xdemen; ++i) {
        a[i] = new unsigned short[Ydemen];
        for (int j = 0; j < Xdemen; ++j) {
            a[i][j] = i*Ydemen + j;
        }
    }
}
 
unsigned short **Population1::getPtrToMyMatrix() {
    return a;
}
 
Population1::~Population1() {
}
 
int main() {
 
    const int matrixSize = 4;
 
    Population1 p1(matrixSize, matrixSize);
    p1.CreateArray();
 
    unsigned short **ptrToMatrix;
 
    ptrToMatrix = p1.getPtrToMyMatrix();
 
    for (int i = 0; i < matrixSize; ++i) {
        for (int j = 0; j < matrixSize; ++j) {
            cout << setw(3) << ptrToMatrix[i][j];
        }
        cout << endl;
    }
 
    return 0;
}
iKarma
в классе происходит всякая реализация этого массива
Все зависит от вашей программы и логики создания объектов которой вы придерживаетесь в вашей программе.
Например почему бы не создавать матрицу в самой программе а потом не передавать ее объекту класса для обработки ? Или же ... есле вам нужны данные из матрицы которая является атрибутом объекта то почему бы не написать методы при обращении к которым вы будете подучать данные которые вам нужны ? и т.д.
Yandex
Объявления
20.12.2011, 07:25     Возврат массива из класса
Ответ Создать тему
Опции темы

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