Компьютерный форум NoWa.cc Здесь может быть Ваша реклама
Правила Форума
редакция от 22.06.2020
Форум .::NoWa.cc::.
Вернуться   Компьютерный форум NoWa.cc > В помощь вебмастеру > Программирование > Visual C++ / С/C++

Уважаемые пользователи nowa.cc. Мы работаем для вас более 20 лет и сейчас вынуждены просить о финансовой помощи по оплате за сервер.
Окажите посильную поддержку, мы очень надеемся на вас. Реквизиты для переводов ниже.
Webmoney Webmoney WMZ: Z021474945171 Webmoney WME: E159284508897 Webmoney WMUSDT: T206853643180
Кошелёк для вашей помощи YooMoney 4100117770549562
YooMoney Спасибо за поддержку!

Ответ
 
Опции темы Опции просмотра Language
Старый 27.05.2009, 09:37   #1
Неактивный пользователь
 
Пол:Женский
Регистрация: 14.01.2009
Сообщений: 16
Репутация: 1
По умолчанию проблема с матрицами в ООП

здравствуйте.
вообщем проблемка вот в чём заключается:
есть класс, одно из его полей матрица, размер известен, но все поля класа должны быть прайватом
следовательно надо написать метод который бы вытаскивал мне матрицу оттуда, что я никак не могу сделать(
сейчас у меня матрица статическая, но можно сделать и динамическую, говорят так легче
огромное спасибо
smithana вне форума
 
Ответить с цитированием Вверх
Здесь может быть Ваша реклама
Здесь может быть Ваша реклама


Реклама: CB8GU3200Магазин бытовой техники: каталог стиральная машина по подписке - переходи на сайт ТАЙМТВ!когда выйдет 3 часть джуманджичелюстная хирургиябаста гуф тур ярославль


Старый 27.05.2009, 21:18   #2
zss
Постоялец
 
Пол:Мужской
Регистрация: 05.02.2007
Адрес: Москва
Сообщений: 662
Репутация: 271
По умолчанию Re: проблема с матрицами в ООП

Ну, например так:
Код:
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);
}
__________________
Сергей Сергеевич
zss вне форума
 
Ответить с цитированием Вверх
Старый 11.07.2009, 20:55   #3
JKR
Новичок
 
Пол:Мужской
Регистрация: 20.07.2006
Сообщений: 22
Репутация: 7
По умолчанию Re: проблема с матрицами в ООП

Если "поля класа должны быть прайватом", то
Код:
int* GetMatrix() 
{
return x;
}
Далее работать с результатом как с указателем.
Например чтобы получить arr[7][5] (матрица 10х10) нужно обратиться GetMatrix()+7*10+5.
где 7 - номер строки, 10 - кол-во элементов в строке, 5 - номер элемента в строке.

Последний раз редактировалось JKR; 11.07.2009 в 21:12..
JKR вне форума
 
Ответить с цитированием Вверх
Старый 28.07.2009, 13:33   #4
ev_Genius
Новичок
 
Пол:Мужской
Регистрация: 08.09.2006
Сообщений: 28
Репутация: 2
По умолчанию Re: проблема с матрицами в ООП

А можно сделать матрицу классом отдельным и возвращать копию, правда это не очень хорошо - расход лишней памяти.
ev_Genius вне форума
 
Ответить с цитированием Вверх
Старый 21.08.2009, 10:54   #5
lotte
Неактивный пользователь
 
Регистрация: 09.03.2008
Сообщений: 5
Репутация: 0
По умолчанию Re: проблема с матрицами в ООП

Можно сделать так.
У класса есть private member - матрица.
Пишешь public метод доступа к элементам матрицы, который возвращает константную ссылку.

public:
const double & GetAt(int i, int j)
{
//здесь выдаешь элемент матрицы i,j
}
lotte вне форума
 
Ответить с цитированием Вверх
Старый 22.09.2009, 12:19   #6
mikejones
Неактивный пользователь
 
Регистрация: 22.09.2009
Сообщений: 3
Репутация: 0
По умолчанию Re: проблема с матрицами в ООП

Цитата:
Сообщение от smithana Посмотреть сообщение
здравствуйте.
вообщем проблемка вот в чём заключается:
есть класс, одно из его полей матрица, размер известен, но все поля класа должны быть прайватом
следовательно надо написать метод который бы вытаскивал мне матрицу оттуда, что я никак не могу сделать(
сейчас у меня матрица статическая, но можно сделать и динамическую, говорят так легче
огромное спасибо

Можно сделать так:
Код:
class Matrix {
  int rep_[10][10];
public:
  int* operator[] (int index) { return rep_[index]; }
};
теперь можно обращаться через обычный оператор:

Код:
Matrix m;

int x = m[1][2];
mikejones вне форума
 
Ответить с цитированием Вверх
Ответ


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
проблема NVRAM либо какая-то другая проблема qizer Компьютерные проблемы 3 03.11.2009 01:40
Проблема, помогите пожалуйста (проблема с Windows Media Player...) bartinio Windows XP 2 12.08.2009 10:49

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Текущее время: 13:43. Часовой пояс GMT +3.


Copyright ©2004 - 2026 NoWa.cc

Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2026, vBulletin Solutions, Inc. Перевод: zCarot
Время генерации страницы 0.04910 секунды с 13 запросами