Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/4: Рейтинг темы: голосов - 4, средняя оценка - 5.00
VadiMaid
4 / 4 / 3
Регистрация: 13.01.2013
Сообщений: 142
#1

Как создать класс содержащий только вспомогательные функции

25.04.2015, 10:06. Просмотров 808. Ответов 8
Метки нет (Все метки)

Всем доброго времени суток! Подскажите как создать класс в C++ содержащий только вспомогательные функции, чтобы подключив его h-файл, в main можно было использовать функции описанные из этого класса не создавая объект класса? К примеру класс Helper, в котором содержится функция суммы:
C++
1
2
3
4
5
6
class Helper{
 
    public:
        int sum(int a, int b);
 
};
cpp-файл

C++
1
2
3
4
5
#include "Helper.h"
 
int Helper::sum(int a, int b){
       return a+b;
}
функция main
C++
1
2
3
4
5
6
7
8
9
10
#include "Helper.h"
 
using namespace std;
 
int main()
{
 
    cin.get();
    return 0;
}
Добавлено через 1 минуту
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include "Helper.h"
 
using namespace std;
 
int main()
{
    int a = 5;
    int b = 6;
    int c = sum(a, b);
    cin.get();
    return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.04.2015, 10:06
Ответы с готовыми решениями:

Создать класс содержащий три поля и две функции
Создать класс содержащий три поля,две функции.В основной программе создать три...

Создать иерархию классов Шахматная фигура – абстрактный класс, содержащий поле – цвет. Создать производные классы
Создать иерархию классов Шахматная фигура – абстрактный класс, содержащий поле...

Как создать класс, где возможно создание только одного объекта?
Как создать класс, где возможно создание только одного объекта?

Создать список, содержащий абстрактный класс
#include <list> #include <iostream> using namespace std; class...

Создать класс, содержащий информацию о товарах
Обучаюсь. В чем проблема подскажите... ссылка - код

8
ValeryS
Модератор
7226 / 5487 / 684
Регистрация: 14.02.2011
Сообщений: 18,560
25.04.2015, 10:17 #2
Цитата Сообщение от VadiMaid Посмотреть сообщение
Подскажите как создать класс в C++ содержащий только вспомогательные функции, чтобы подключив его h-файл, в main можно было использовать функции описанные из этого класса не создавая объект класса?
никак
поскольку у метода( функции класса) есть еще один неявный параметр, указатель на объект
можно конечно воспользоваться статическими функциями, но зачем этот геморрой?
0
Tulosba
:)
Эксперт С++
4748 / 3242 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
25.04.2015, 10:19 #3
Цитата Сообщение от ValeryS Посмотреть сообщение
никак
Вообще-то, если все функции статические, то объект класса не нужен. Собственно такое как раз практикуют при создании хелпер-классов.

C++
1
2
3
4
5
6
7
// объявление
class Helper{
public:
   static int sum(int a, int b);
};
//использование
int res = Helper::sum(4, 5);
0
Kerry_Jr
Эксперт PHP
2210 / 2006 / 940
Регистрация: 14.05.2014
Сообщений: 5,869
Записей в блоге: 1
Завершенные тесты: 5
25.04.2015, 10:20 #4
Цитата Сообщение от VadiMaid Посмотреть сообщение
Подскажите как создать класс в C++ содержащий только вспомогательные функции,
а зачем класс? Просто в файле Helper.h опишите нужные Вам функции, подключайте его и пользуйтесь.
0
Tulosba
:)
Эксперт С++
4748 / 3242 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
25.04.2015, 10:25 #5
Цитата Сообщение от Kerry_Jr Посмотреть сообщение
а зачем класс?
Класс в таких случаях используется для указания принадлежности функций к какому-то определенному типу задач, дабы не вносить функцию в глобальное пространство. Подобным образом можно использовать и пространства имен (namespace). И ещё, принадлежность функции классу вытекает из принципов ООП. Т.е. подразумевается полное исключение свободных функций, как например в C#.
0
Kerry_Jr
Эксперт PHP
2210 / 2006 / 940
Регистрация: 14.05.2014
Сообщений: 5,869
Записей в блоге: 1
Завершенные тесты: 5
25.04.2015, 10:31 #6
Цитата Сообщение от Tulosba Посмотреть сообщение
Класс в таких случаях используется для указания принадлежности функций к какому-то определенному типу задач
Это все, конечно, хорошо, но я сужу по тому, как ТС использует функции. Из его кода видно, что никакой класс ему не нужен вовсе, а нужны исключительно функции.
0
ValeryS
Модератор
7226 / 5487 / 684
Регистрация: 14.02.2011
Сообщений: 18,560
25.04.2015, 10:43 #7
Цитата Сообщение от Tulosba Посмотреть сообщение
Вообще-то, если все функции статические,
ну а я про что
Цитата Сообщение от ValeryS Посмотреть сообщение
можно конечно воспользоваться статическими функциями,
0
zss
Модератор
Эксперт С++
7102 / 6630 / 4199
Регистрация: 18.12.2011
Сообщений: 17,490
Завершенные тесты: 1
25.04.2015, 11:46 #8
А чем плох вариант с Namespace?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
//   helper.h---------------------
namespace  Helper
{
int sum(int a, int b);
} 
// helper.cpp---------------------
int Helper::sum(int a, int b)
{
       return a+b;
}
//---- main-----------------------
int main()
{
    int a = 5;
    int b = 6;
    int c = Helper::sum(a, b);
    cin.get();
    return 0;
}
0
Tulosba
:)
Эксперт С++
4748 / 3242 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
25.04.2015, 11:58 #9

Не по теме:

Цитата Сообщение от ValeryS Посмотреть сообщение
ну а я про что
Каюсь. Всё внимание ушло на "никак" :handshake:


Цитата Сообщение от Kerry_Jr Посмотреть сообщение
никакой класс ему не нужен вовсе, а нужны исключительно функции.
Тут и функции не нужны, обычное сложение двух целых, которое выполняется из оператором сложения "из коробки". Но дело ведь не в том, что тут надо, а что нет. Дело в том, что человек учится, и пример этот учебный.
0
25.04.2015, 11:58
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.04.2015, 11:58

Создать класс, содержащий сведения о сотрудниках института
Вот программа #include <iostream.h> #include <string.h> #include <math.h>...

Создать класс Money, содержащий следующие элементы
Создать класс Money, содержащий следующие элементы: - поле «валюта» char*...

Создать класс Employee, содержащий следующие элементы:
Создать класс Employee, содержащий следующие элементы: - поле «ФИО» char*...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

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