![]() |
|
| Правила Форума редакция от 22.06.2020 |
|
|||||||
|
|
Окажите посильную поддержку, мы очень надеемся на вас. Реквизиты для переводов ниже. |
|
![]() |
|
|
Опции темы | Опции просмотра |
Language
|
|
|
#1
|
|
Неактивный пользователь
Пол:
Регистрация: 14.01.2009
Сообщений: 16
Репутация: 1
|
здравствуйте.
вообщем проблемка вот в чём заключается: есть класс, одно из его полей матрица, размер известен, но все поля класа должны быть прайватом следовательно надо написать метод который бы вытаскивал мне матрицу оттуда, что я никак не могу сделать( сейчас у меня матрица статическая, но можно сделать и динамическую, говорят так легче огромное спасибо |
|
|
|
| Реклама: | CB8GU3200 | Магазин бытовой техники: каталог стиральная машина по подписке - переходи на сайт ТАЙМТВ! | когда выйдет 3 часть джуманджи | челюстная хирургия | баста гуф тур ярославль |
|
|
#2
|
|
Постоялец
![]() ![]() ![]() ![]() ![]() Пол:
Регистрация: 05.02.2007
Адрес: Москва
Сообщений: 662
Репутация: 271
|
Ну, например так:
Код:
class matr
{
int x[10][10];
public:
int operator()(int i,int j){return x[i][j];}
};
void main()
{
matr a;
int k=a(1,0);
}
__________________
Сергей Сергеевич |
|
|
|
| Сказали спасибо: |
|
|
#3
|
|
Новичок
![]() ![]() Пол:
Регистрация: 20.07.2006
Сообщений: 22
Репутация: 7
|
Если "поля класа должны быть прайватом", то
Код:
int* GetMatrix()
{
return x;
}
Например чтобы получить arr[7][5] (матрица 10х10) нужно обратиться GetMatrix()+7*10+5. где 7 - номер строки, 10 - кол-во элементов в строке, 5 - номер элемента в строке. Последний раз редактировалось JKR; 11.07.2009 в 21:12.. |
|
|
|
|
|
#4
|
|
Новичок
Пол:
Регистрация: 08.09.2006
Сообщений: 28
Репутация: 2
|
А можно сделать матрицу классом отдельным и возвращать копию, правда это не очень хорошо - расход лишней памяти.
|
|
|
|
|
|
#5
|
|
Неактивный пользователь
Регистрация: 09.03.2008
Сообщений: 5
Репутация: 0
|
Можно сделать так.
У класса есть private member - матрица. Пишешь public метод доступа к элементам матрицы, который возвращает константную ссылку. public: const double & GetAt(int i, int j) { //здесь выдаешь элемент матрицы i,j } |
|
|
|
|
|
#6
|
|
Неактивный пользователь
Регистрация: 22.09.2009
Сообщений: 3
Репутация: 0
|
Можно сделать так: Код:
class Matrix {
int rep_[10][10];
public:
int* operator[] (int index) { return rep_[index]; }
};
Код:
Matrix m; int x = m[1][2]; |
|
|
|
![]() |
Похожие темы
|
||||
| Тема | Автор | Раздел | Ответов | Последнее сообщение |
| проблема NVRAM либо какая-то другая проблема | qizer | Компьютерные проблемы | 3 | 03.11.2009 01:40 |
| Проблема, помогите пожалуйста (проблема с Windows Media Player...) | bartinio | Windows XP | 2 | 12.08.2009 10:49 |
|
|