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

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

Войти
Регистрация
Восстановить пароль
 
fasked
Эксперт С++
4942 / 2522 / 180
Регистрация: 07.10.2009
Сообщений: 4,311
Записей в блоге: 1
#1

Классы и функции - C++

01.03.2010, 11:09. Просмотров 398. Ответов 9
Метки нет (Все метки)

Вопрос по поводу "идеологии" написания классов.
Как лучше писать реализации?

Есть ли смысл создавать функции, которые по сути аналогичны предназначению метода класса и просто вызывать их из методов?
Например, так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
void ker_foo( /* ... */ )
{
}
 
class Class
{
    public:
            Class()
            {
                /* ... */
            }
            
            Foo( /* ... */ )
            {
                ker_foo( /* ... */ );
            }
}
Или же все таки лучше писать все в реализации метода?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.03.2010, 11:09
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Классы и функции (C++):

Классы. Программирование алгоритмов с использованием конструктора, деструктора, friend - функции инициализации set() и функции вывода результатов prin - C++
Братаны, выручайте!:help: Общая постановка. Пользовательский класс Х должен содержать необходимые элементы-данные, которые создаются в...

Классы. Программирование алгоритмов с использованием конструктора, деструктора, friend - функции инициализации set() и функции вывода результатов pri - C++
Братаны, выручайте! Общая постановка. Пользовательский класс Х должен содержать необходимые элементы-данные, которые создаются в...

классы,функции - C++
1. Плоская геометрическая фигура а) круг (целочислен. координаты центра окружности, радиус) б) прямоугольник(целочисл. координаты...

Классы.Дружественные функции - C++
Пример с книги "Visual CPP 6 - Руководство Разработчика". Тема: "Классы.Дружественные ф-ции". Исправте ошибки и рассказыте более подробнее...

Структуры и функции (КЛАССЫ) - C++
1. Создать структуру, которая описывает указанную в задании сущность. 2. Написать функции, которые служат для обработки данных,...

Массивы классы и функции - C++
Здравствуйте мне дали задание на оценку но я не совсем понимаю его. Не могли бы вы объяснить какие примерно нужно использовать функции и...

9
Sekt
156 / 155 / 10
Регистрация: 29.04.2009
Сообщений: 637
01.03.2010, 11:20 #2
в реализации метода будет лучше.
0
fasked
Эксперт С++
4942 / 2522 / 180
Регистрация: 07.10.2009
Сообщений: 4,311
Записей в блоге: 1
01.03.2010, 11:24  [ТС] #3
Цитата Сообщение от Sekt Посмотреть сообщение
в реализации метода будет лучше.
Чем???
0
Genius Ignat
1236 / 774 / 44
Регистрация: 16.09.2009
Сообщений: 2,014
01.03.2010, 11:24 #4
C++
1
2
3
4
5
 Foo( /* ... */ )
                        {
                                ker_foo( /* ... */ );
                        }
 }
Это бывает неободимо если ниспользовать функцию Foo как специфическую оболочку
функции ker_foo( /* ... */ );
Я это применяю если использую библиотчечные функции,
Так сказать вызвал библиотчечную функцию и провёл свои специфические действия которые не может библиотченая функция, но может моя оболочка+библиотечная функция.
Короче замудрил.

Но в твоем случае я смысла пока не вижу, так как не видно общей картины,
поэтому и вывод у меня такой.
0
fasked
Эксперт С++
4942 / 2522 / 180
Регистрация: 07.10.2009
Сообщений: 4,311
Записей в блоге: 1
01.03.2010, 11:31  [ТС] #5
Допустим, есть набор готовых функций и для создания класса их нужно собственно только собрать в класс...
0
Genius Ignat
1236 / 774 / 44
Регистрация: 16.09.2009
Сообщений: 2,014
01.03.2010, 11:37 #6
Если у тебя среда которая поддреживает ассоциацию выбранного метода с нужным классом:
то есть поддреживает подсказки: тогда функции лучше собрать в класс так как название
функции в голове держать не надо.
0
fasked
Эксперт С++
4942 / 2522 / 180
Регистрация: 07.10.2009
Сообщений: 4,311
Записей в блоге: 1
01.03.2010, 11:48  [ТС] #7
А если это делается не только для сборки функций в кучку
Например есть функция:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
template <typename array>
void sort(array * a, int l, int r)
{
    int h;
    for(h = l; h <= (r-l)/9; h = 3*h+1);
    for( ; h > 0; h /= 3)
        for(int i = l+h; i <= r; i++)
        {
            int j = i;
            array v = a[i];
            while(j >= l+h && v < a[j-h])
            {
                a[j] = a[j-h];
                j -= h;
            }
            a[j] = v;
        }
}
и класс массива:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
template <class T>
class Array
{
public:
        Array(int size) { mptr = new T[size]; sorted = false; }
        ~Array()        { delete[] mptr; }
        
        void Sorting(uint left, uint right)
        {
            if(!sorted)
            {
                sort(mptr, left, right);
                sorted = true;
            }
        }
private:
        T * mptr;
        bool sorted;
};
0
Genius Ignat
1236 / 774 / 44
Регистрация: 16.09.2009
Сообщений: 2,014
01.03.2010, 11:51 #8
Не удачный пример: оболчка должна быть тоже шаблонной, иначе функция не предоставляет
абстрактность шаблонной функции: ограничивает одним типом: uint.
0
fasked
Эксперт С++
4942 / 2522 / 180
Регистрация: 07.10.2009
Сообщений: 4,311
Записей в блоге: 1
01.03.2010, 11:57  [ТС] #9
Цитата Сообщение от Genius Ignat Посмотреть сообщение
Не удачный пример: оболчка должна быть тоже шаблонной, иначе функция не предоставляет
абстрактность шаблонной функции: ограничивает одним типом: uint.
Так она шаблонна, (uint'ами обозначены границы сортировки) ну или во всяком случае я хотел именно это и показать xD
А вообще играет это большую роль при написании, как организовывать класс?
Может быть с точки зрения неповторяемости кода лучше все в отдельных функциях, а потом их в оболочки?
0
Genius Ignat
1236 / 774 / 44
Регистрация: 16.09.2009
Сообщений: 2,014
01.03.2010, 12:18 #10
Которая в классе не шаблонная.
Шаблонный целый класс, это я не углядел.

Добавлено через 1 минуту
Которая в классе не шаблонная.
Точнее она тоже шаблонная ее инстацирование зависит от инстацирования объекта.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.03.2010, 12:18
Привет! Вот еще темы с ответами:

Дружественные функции и классы - C++
Доброго времени суток ! Может у кого - нибудь есть похожие исходники или мысли по поводу данного задания ?! Помогите пожалуйста ! ...

Классы, указатель на функции - C++
Мы можем дать такое описание простого списка: - Простой список может содержать ноль или большее число элементов некоторого ...

Классы, указатели и функции? - C++
Помогите пожалуйста разобраться в программе. Нужно из конструктора класса передать адреса в другую функцию ,разадресовывать и поставить...

Дружественные функции и классы - C++
Добрый вечер, я готовлюсь к госам и там есть такая штука как Дружеские функции и классы, и вот хотел спросить зачем ваше нужны дружеские...


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

Или воспользуйтесь поиском по форуму:
10
Yandex
Объявления
01.03.2010, 12:18
Ответ Создать тему
Опции темы

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