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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.80
urkovsky
6 / 6 / 0
Регистрация: 07.08.2008
Сообщений: 22
#1

Создание каркаса программы из namespace`ов и сигнатур - C++

07.08.2008, 14:12. Просмотров 1231. Ответов 8
Метки нет (Все метки)

Всем привет. Возникла следующая проблема Вернулся с Java на C++. Расстроился. Раздражает то, что надо делить реализацию от сигнатуры. Так и подмывает построить нечто вроде коркаса из namspace`ов и сигнатур.
Пример:
framework.h - Каркас
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
namespace test
{
    namespace test_1
    {
        class test_1_class_1
        {
               private: viod test_func();
        };
 
        class test_1_class_2
        {
        };
    }
 
    namespace test_2
    {
        class test_2_class_1
        {
        };
 
        class test_2_class_2
        {
        };
    }
 }
test_1_class_1.cpp - реализация
C++
1
2
3
4
5
6
7
8
9
10
11
12
#incude "framework.h"
 
namespace test
{
    namespace test_1
    {
        void test_1_class_1::test_func()
        {
            // code
        }
    }
}
test.cpp - использование
C++
1
2
3
#include "framework.h"
 
using test::test_1::test_1_class_2;
и т.д.

Вот. Хотелось бы узнать мнение насчет такого подхода? Может это вообще бред сивой кобылы?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.08.2008, 14:12     Создание каркаса программы из namespace`ов и сигнатур
Посмотрите здесь:

C++ using namespace std
C++ namespace
using namespace std; C++
C++ Namespace
namespace C++
using namespace std C++
namespace C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Spo1ler
292 / 52 / 3
Регистрация: 22.05.2008
Сообщений: 788
07.08.2008, 14:31     Создание каркаса программы из namespace`ов и сигнатур #2
лично я не использую namespace'ы. это конечно удобно, но легко запутаться, а вообще помоему в этом коде уж чересчур их много. незнаю, мне бы было неудобно
urkovsky
6 / 6 / 0
Регистрация: 07.08.2008
Сообщений: 22
07.08.2008, 14:54  [ТС]     Создание каркаса программы из namespace`ов и сигнатур #3
Вся и суть в этом, сравни package`ам в Java. Если нужен там такой-то класс подключаешь framework и пользуешь. Ну да ладно, спасибо за ответ. Попробую оценить в реалии насколько это удобно.
XuTPbIu_MuHTAu
Эксперт C++
2221 / 736 / 10
Регистрация: 27.05.2008
Сообщений: 1,508
07.08.2008, 14:59     Создание каркаса программы из namespace`ов и сигнатур #4
Я не очень понял твоих целей.Для заголовков можно использовать .H - хедер- файлы.Для реализации .cpp файлы.
С такими каркасами ты начнешь проклинать всё и вся где-то на третьем создаваемом классе....) Ну,я бы начал.
Вообще,неймспейсы используются для избежания конфликтов в названиях переменных разных библиотек.Никак не для создания структуры программы,ведь они,фактически, усложняют код.

Если ты хочешь реализовать функцию прямо там,где объявил,то это легко делается.
C++
1
2
3
4
5
6
7
8
9
class test1 {
private : 
     int a;
public :
     void somefunc(int b) { //объявление
                              a=b;// реализация
     };
 
};
Вообще,не понял целей всех этих каркасов.Не могу опровергнуть полезность такого подхода,поскольку вообще не вижу,в чем он может быть полезен.
urkovsky
6 / 6 / 0
Регистрация: 07.08.2008
Сообщений: 22
07.08.2008, 15:38  [ТС]     Создание каркаса программы из namespace`ов и сигнатур #5
Если ты хочешь реализовать функцию прямо там,где объявил,то это легко делается.
Функция somefunc будет считаться как inline

Я сам сомневаюсь в полезности таких "каркасов"... но какже package`ы :'(
Ладно ребят, как говорится: "Со своим уставом в чужой монастырь не ходи".
XuTPbIu_MuHTAu
Эксперт C++
2221 / 736 / 10
Регистрация: 27.05.2008
Сообщений: 1,508
07.08.2008, 15:59     Создание каркаса программы из namespace`ов и сигнатур #6
Да,она будет считаться inline. Но ты можешь сначала сделать все функции inline, а потом перенести реализацию,когда закончишь работу с этим классом ))

Цитата Сообщение от urkovsky Посмотреть сообщение
какже package`ы :'(
Я думаю,ты быстро привыкнешь к отсутствию пэкэджей )
urkovsky
6 / 6 / 0
Регистрация: 07.08.2008
Сообщений: 22
07.08.2008, 16:07  [ТС]     Создание каркаса программы из namespace`ов и сигнатур #7
Спасибо за поддержку и наставление на путь истинный
XuTPbIu_MuHTAu
Эксперт C++
2221 / 736 / 10
Регистрация: 27.05.2008
Сообщений: 1,508
07.08.2008, 16:11     Создание каркаса программы из namespace`ов и сигнатур #8
Если честно,я сам иногда грешу всякими такими штуками. В частности,
иногда реализую функцию в теле,а потом переношу. Бывает удобней. Не за что, успехов
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.08.2008, 19:32     Создание каркаса программы из namespace`ов и сигнатур
Еще ссылки по теме:

namespace C++
C++ Создание перегрузки метода "operator =" для типа, расположенного в ином namespace
C++ Создание статического класса, или функции в namespace
Код поиска сигнатур (нужны комментарии) C++
C++ Использование namespace

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

Или воспользуйтесь поиском по форуму:
Spo1ler
292 / 52 / 3
Регистрация: 22.05.2008
Сообщений: 788
07.08.2008, 19:32     Создание каркаса программы из namespace`ов и сигнатур #9
кстати, для создания классов легче уж настроить IDE на создание свзки двух cpp и h файлов по шаблону. что то врде

File somefile.h
C++
1
2
3
4
5
6
7
8
9
10
#ifndef _SOMEFILE_H
#define _SOMEFILE_H
class SomeClass{
public:
    virtual ~SomeClass(){
    
    }
protected:
private:
};
file somefile.cpp
C++
1
2
3
#include "somefile.h"
 
using namespace SomeClass;/*дада, уж здесь можно юзать неймспейс, только не забывайте указывать неймспейсы отличные от SomeClass*/
или вместо всех этих SomeClass и somefile просто пробелы, а потом по ходу заполнения подставлять нужное
Yandex
Объявления
07.08.2008, 19:32     Создание каркаса программы из namespace`ов и сигнатур
Ответ Создать тему
Опции темы

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