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

разбить метод - C++

Восстановить пароль Регистрация
 
shbk
13 / 13 / 4
Регистрация: 29.10.2009
Сообщений: 71
17.02.2011, 01:16     разбить метод #1
C++
1
2
3
4
5
6
7
class ar
{    int *ix,in;
     public:
      void task1();
   ....................
........................
};
есть файл, где объявлен класс ar.h. его реализация в ar.cpp .
реализация большая довольно, >200 строк.
разбивать в классе не сподручно - много методов, ненаглядно.

ar.cpp
C++
1
2
3
4
5
6
7
8
9
10
int find_max()
{ 
 return max;
}
 
void ar::task1()
{
   ........
      max=find_max(); //поиск максимального
}
но при использовании функции придется передавать туда данные через указатели.
кажется это неправильно. как разбить по-человечески?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.02.2011, 01:16     разбить метод
Посмотрите здесь:

Метод дихотомии (как метод оптимизации) C++
C++ Как разбить?
разбить класс C++
Разбить строку C++
C++ Разбить на функции
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 3
17.02.2011, 01:20     разбить метод #2
shbk, Почему через указатели? Что вы имеете ввиду? Пример плз
shbk
13 / 13 / 4
Регистрация: 29.10.2009
Сообщений: 71
17.02.2011, 01:33  [ТС]     разбить метод #3
вот так, легально ли это?

C++
1
2
3
4
5
6
7
8
9
10
int find_max(int *ix,int in,int maxpos)
{ int maxnumb=ix[maxpos];
 
  for (int i=maxpos+1;i<in;i++)
    if (ix[i]>maxnumb)
      { maxnumb=ix[i];
        maxpos=i;
      }
      return maxpos;
}

C++
1
2
3
4
5
6
7
8
9
10
11
12
void ar::task1()
{
    .........
   while (countmore>0)
    {
       maxnumb=find_max(ix,in,maxpos);
  //передается указатель на массив, но суть не в этом, в объекте можно видеть данные(тут), 
  // если создать вспомогательную процедуру, то от туда их не видно, может можно как-то указать , что  эта процедура этого объекта и может иметь  доступ к данным без передачи?  я мало знаю об ооп. но кажется это немножко не по оопешевкси.  
    }
 
 
}
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 3
17.02.2011, 01:37     разбить метод #4
shbk, Использовать friend например. Или использовать геттеры/сеттеры... Или сделать функцию членом-класса... Или оставить так.
Yandex
Объявления
17.02.2011, 01:37     разбить метод
Ответ Создать тему
Опции темы

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