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

Имеет ли смысл использовать класс так? - C++

Восстановить пароль Регистрация
 
 
anubis1768
4 / 4 / 0
Регистрация: 23.02.2013
Сообщений: 151
11.07.2013, 13:19     Имеет ли смысл использовать класс так? #1
Здравствуйте. Недавно увидел код, вот упрощенный вариант:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
class someClass
{
    public:
        static bool someFn( int, int );
        static void foo( int* );
        
        //ГҐГ№ГҐ ГЇГ*ðó Г±ГІГ*ГІГЁГЄ ГґГіГ*êöèé...
};
 
//ðåГ*ëèçГ*öèÿ ГґГіГ*êöèé Г*ГҐ ГўГ*Г¦Г*Г* 
 
int main() {
    bool f = someClass::someFn( 5, 6 );
    int p = 8; 
    someClass::foo( &p );
    
    return 0;
}
Так вот вопрос: имеет ли смысл делать такой класс, если он не содержит никаких полей для обработки функциями.
Не проще все в неймспейс запихнуть и пользоваться как просто функциями?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.07.2013, 13:19     Имеет ли смысл использовать класс так?
Посмотрите здесь:

C++ Проинициализировать класс массивов который имеет конструктор по умолчанию
Имеет ли смысл продолжать учить с++ или попробовать перейти в с# или java? C++
C++ что здесь не так? (из промежутка [n; m] вывести число, которое имеет наибольшее делителей)
C++ Имеет ли смысл писать конспект по изучаемому материалу
C++ Так в каких случаях стоит использовать наследование?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
0x10
2425 / 1597 / 232
Регистрация: 24.11.2012
Сообщений: 3,919
11.07.2013, 13:22     Имеет ли смысл использовать класс так? #2
Цитата Сообщение от anubis1768 Посмотреть сообщение
Не проще все в неймспейс запихнуть и пользоваться как просто функциями?
Проще, нормальный вариант.
Игорь с++
 Аватар для Игорь с++
429 / 452 / 15
Регистрация: 26.01.2011
Сообщений: 2,029
11.07.2013, 13:22     Имеет ли смысл использовать класс так? #3
Полное несоответсвие концепций ООП
anubis1768
4 / 4 / 0
Регистрация: 23.02.2013
Сообщений: 151
11.07.2013, 13:27  [ТС]     Имеет ли смысл использовать класс так? #4
0x10, Игорь с++, спасибо, я поначалу тоже удивился такому странному использованию, подумал, что тут какая то специальная фича, а оказывается просто быдлокод...
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11815 / 6794 / 769
Регистрация: 27.09.2012
Сообщений: 16,866
Записей в блоге: 2
Завершенные тесты: 1
11.07.2013, 13:29     Имеет ли смысл использовать класс так? #5
Цитата Сообщение от anubis1768 Посмотреть сообщение
Не проще все в неймспейс запихнуть и пользоваться как просто функциями?
А если нужны будут приватные данные?
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 3
11.07.2013, 13:31     Имеет ли смысл использовать класс так? #6
Цитата Сообщение от anubis1768 Посмотреть сообщение
Не проще все в неймспейс запихнуть и пользоваться как просто функциями?
А если нужно будет использовать специализацию?
0x10
2425 / 1597 / 232
Регистрация: 24.11.2012
Сообщений: 3,919
11.07.2013, 13:31     Имеет ли смысл использовать класс так? #7
Croessmah, если нужны будут, тогда и появится повод для класса. В посте говорится только о куче статик-методов.
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11815 / 6794 / 769
Регистрация: 27.09.2012
Сообщений: 16,866
Записей в блоге: 2
Завершенные тесты: 1
11.07.2013, 13:33     Имеет ли смысл использовать класс так? #8
Цитата Сообщение от 0x10 Посмотреть сообщение
Croessmah, если нужны будут, тогда и появится повод для класса.
И смысл то и дело всё переделывать?
anubis1768
4 / 4 / 0
Регистрация: 23.02.2013
Сообщений: 151
11.07.2013, 13:36  [ТС]     Имеет ли смысл использовать класс так? #9
Croessmah, из namespace в класс не очень сложно переделать. Нет, конечно будет немножко геморно, но можно подумать и обойтись без класса. Тем более, здесь такой класс, что вряд ли какие то данные ему потребуются.
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11815 / 6794 / 769
Регистрация: 27.09.2012
Сообщений: 16,866
Записей в блоге: 2
Завершенные тесты: 1
11.07.2013, 13:52     Имеет ли смысл использовать класс так? #10
Пространства имен нужны для разрешения конфликтов имен, тогда как структуры необходимы для объединения чего-то общего

Добавлено через 3 минуты
Такой пример убедительнее выглядит?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
#include <iostream>
 
 
namespace MyNamespace{
    int bar(int x);
    int foo(int x){
        if(x>0)
            return 1+bar(x);
        return 0;
    }
    int bar(int x){
        return 1+foo(x-1);
    }
}
 
 
 
struct MyStruct{
    static int foo(int x){
        if(x>0)
            return 1+bar(x);
        return 0;
    }
    static int bar(int x){
        return 1+foo(x-1);
    }
};
 
 
 
template<typename T>
int MyFoo(const T & obj){
    return obj.foo(10);
}
 
 
int main () {
    std::cout<<MyNamespace::foo(60)<<std::endl;
    std::cout<<MyStruct::foo(60)<<std::endl;
    std::cout<<MyFoo(MyStruct())<<std::endl;
    //std::cout<<MyFoo(???)<<std::endl;//А как с namespace?
    return 0;
}
Programmer c
 Аватар для Programmer c
5 / 0 / 2
Регистрация: 06.07.2013
Сообщений: 59
11.07.2013, 13:53     Имеет ли смысл использовать класс так? #11
Цитата Сообщение от anubis1768 Посмотреть сообщение
Здравствуйте. Недавно увидел код, вот упрощенный вариант:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
class someClass
{
    public:
        static bool someFn( int, int );
        static void foo( int* );
        
        //ГҐГ№ГҐ ГЇГ*ðó Г±ГІГ*ГІГЁГЄ ГґГіГ*êöèé...
};
 
//ðåГ*ëèçГ*öèÿ ГґГіГ*êöèé Г*ГҐ ГўГ*Г¦Г*Г* 
 
int main() {
    bool f = someClass::someFn( 5, 6 );
    int p = 8; 
    someClass::foo( &p );
    
    return 0;
}
Так вот вопрос: имеет ли смысл делать такой класс, если он не содержит никаких полей для обработки функциями.
Не проще все в неймспейс запихнуть и пользоваться как просто функциями?
Полное не соответсвие ООП
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11815 / 6794 / 769
Регистрация: 27.09.2012
Сообщений: 16,866
Записей в блоге: 2
Завершенные тесты: 1
11.07.2013, 13:54     Имеет ли смысл использовать класс так? #12
Цитата Сообщение от Programmer c Посмотреть сообщение
Полное не соответсвие ООП
Классы применяются не только для ООП, особенно в связке с шаблонами!
Тем более, что тут нет речи о объектах данного класса, тогда где ООП вообще?
Programmer c
 Аватар для Programmer c
5 / 0 / 2
Регистрация: 06.07.2013
Сообщений: 59
11.07.2013, 13:55     Имеет ли смысл использовать класс так? #13
Цитата Сообщение от Croessmah Посмотреть сообщение
Классы применяются не только для ООП, особенно в связке с шаблонами!
Спс, просветил меня, буду знать)
anubis1768
4 / 4 / 0
Регистрация: 23.02.2013
Сообщений: 151
11.07.2013, 13:56  [ТС]     Имеет ли смысл использовать класс так? #14
Цитата Сообщение от Croessmah Посмотреть сообщение
структуры необходимы для объединения чего-то общего
То есть объединять похожие функции в классе, в котором нету полей, и делать их статик, все-таки имеет смысл? Если да, то объясните, зачем.
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11815 / 6794 / 769
Регистрация: 27.09.2012
Сообщений: 16,866
Записей в блоге: 2
Завершенные тесты: 1
11.07.2013, 13:57     Имеет ли смысл использовать класс так? #15
Цитата Сообщение от anubis1768 Посмотреть сообщение
Если да, то объясните, зачем.
В посте #10 есть пример
Programmer c
 Аватар для Programmer c
5 / 0 / 2
Регистрация: 06.07.2013
Сообщений: 59
11.07.2013, 13:59     Имеет ли смысл использовать класс так? #16
Цитата Сообщение от Croessmah Посмотреть сообщение
Если Вы планируете выбросить первый экземпляр программы, Вы выбросите и второй. (c) Крейг Зенури
Пардон что не по теме, а как это сделать?)))
anubis1768
4 / 4 / 0
Регистрация: 23.02.2013
Сообщений: 151
11.07.2013, 14:00  [ТС]     Имеет ли смысл использовать класс так? #17
Цитата Сообщение от Croessmah Посмотреть сообщение
В посте #10 есть пример

Не по теме:

та Вы просто быстрее написали ответ, чем я вопрос

Croessmah
11.07.2013, 14:06
  #18

Не по теме:

Цитата Сообщение от Programmer c Посмотреть сообщение
Пардон что не по теме, а как это сделать?
Имеется литературная метафора написания кода. О ней можно почитать в книге, написанной Фредом Бруксом. Там говориться "Планируйте выкинуть первый экземпляр программы: Вам в любом случае придется это сделать".
Собственно это характеризует всю метафору.

Ну и вот Зенури можно сказать дал еще более точное описание литературной метафоры

Programmer c
 Аватар для Programmer c
5 / 0 / 2
Регистрация: 06.07.2013
Сообщений: 59
11.07.2013, 14:11     Имеет ли смысл использовать класс так? #19
Цитата Сообщение от Croessmah Посмотреть сообщение

Не по теме:


Имеется литературная метафора написания кода. О ней можно почитать в книге, написанной Фредом Бруксом. Там говориться "Планируйте выкинуть первый экземпляр программы: Вам в любом случае придется это сделать".
Собственно это характеризует всю метафору.

Ну и вот Зенури можно сказать дал еще более точное описание литературной метафоры

Нет, нет... как сделать это ерунду которая под сообщением...
__________________
Если Вы планируете выбросить первый экземпляр программы, Вы выбросите и второй. (c) Крейг Зенури
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.07.2013, 14:16     Имеет ли смысл использовать класс так?
Еще ссылки по теме:

Создать абстрактный тип данных - класс вектор, который имеет указатель на long, число элементов и переменную состояния C++
Класс, для полей которого нужно использовать класс C++
Класс, каждый экземпляр которого имеет поле UID с гарантированно уникальным значением C++

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

Или воспользуйтесь поиском по форуму:
Croessmah
11.07.2013, 14:16     Имеет ли смысл использовать класс так?
  #20

Не по теме:

Цитата Сообщение от Programmer c Посмотреть сообщение
как сделать это ерунду которая под сообщением...
В личном кабинете.
Но: http://www.cyberforum.ru/about-forum/thread782784.html

Yandex
Объявления
11.07.2013, 14:16     Имеет ли смысл использовать класс так?
Ответ Создать тему
Опции темы

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