Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.78/9: Рейтинг темы: голосов - 9, средняя оценка - 4.78
7 / 7 / 0
Регистрация: 07.08.2008
Сообщений: 22
1

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

07.08.2008, 14:12. Показов 1642. Ответов 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;
и т.д.

Вот. Хотелось бы узнать мнение насчет такого подхода? Может это вообще бред сивой кобылы?
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
07.08.2008, 14:12
Ответы с готовыми решениями:

Yii создание каркаса на MAC OC
http://www.yiiframework.com/doc/guide/1.1/ru/quickstart.first-app все делаю по этому гайду, но...

Есть ли совсем высокоуровневые инструменты, где создание html каркаса выполнялось бы очень просто и быстро?
Есть ли совсем высокоуровневые инструменты, где создание html каркаса выполнялось бы очень просто и...

Головоломка с namespace в большом солюшине, проект подхватывает чужой namespace
Добрый вечер! Народ, подскажите, пожалуйста, что-то я никак понять не могу. Проблема в следующем:...

Ошибка CS0234 The type or namespace name 'Office' does not exist in the namespace 'Microsoft'
Здравствуйте. Помогите разобраться. Сбилдил проект после переустановки винды и тут такая ошибка....

8
295 / 55 / 5
Регистрация: 22.05.2008
Сообщений: 788
07.08.2008, 14:31 2
лично я не использую namespace'ы. это конечно удобно, но легко запутаться, а вообще помоему в этом коде уж чересчур их много. незнаю, мне бы было неудобно
0
7 / 7 / 0
Регистрация: 07.08.2008
Сообщений: 22
07.08.2008, 14:54  [ТС] 3
Вся и суть в этом, сравни package`ам в Java. Если нужен там такой-то класс подключаешь framework и пользуешь. Ну да ладно, спасибо за ответ. Попробую оценить в реалии насколько это удобно.
0
Эксперт С++
2250 / 765 / 25
Регистрация: 27.05.2008
Сообщений: 1,496
07.08.2008, 14:59 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;// реализация
     };
 
};
Вообще,не понял целей всех этих каркасов.Не могу опровергнуть полезность такого подхода,поскольку вообще не вижу,в чем он может быть полезен.
0
7 / 7 / 0
Регистрация: 07.08.2008
Сообщений: 22
07.08.2008, 15:38  [ТС] 5
Если ты хочешь реализовать функцию прямо там,где объявил,то это легко делается.
Функция somefunc будет считаться как inline

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

Цитата Сообщение от urkovsky Посмотреть сообщение
какже package`ы :'(
Я думаю,ты быстро привыкнешь к отсутствию пэкэджей )
0
7 / 7 / 0
Регистрация: 07.08.2008
Сообщений: 22
07.08.2008, 16:07  [ТС] 7
Спасибо за поддержку и наставление на путь истинный
0
Эксперт С++
2250 / 765 / 25
Регистрация: 27.05.2008
Сообщений: 1,496
07.08.2008, 16:11 8
Если честно,я сам иногда грешу всякими такими штуками. В частности,
иногда реализую функцию в теле,а потом переношу. Бывает удобней. Не за что, успехов
0
295 / 55 / 5
Регистрация: 22.05.2008
Сообщений: 788
07.08.2008, 19:32 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 просто пробелы, а потом по ходу заполнения подставлять нужное
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
07.08.2008, 19:32

Заказываю контрольные, курсовые, дипломные работы и диссертации здесь.

Области видимости namespace .Ошибка No code may exist outside of namespace {}
<?php namespace MyProject{ class ClassA { public $val = 'MyProject "ClassA"'; } } namespace...

The type or namespace name 'DirectoryServices' does not exist in the namespace 'System'
Подскажите, пожалуйста! Только начинаю на C# писать!:scratch: Вот такой вроде небольшой кодик: ...

Создание статического класса, или функции в namespace
создаю win окно, хотел обернуть api функции набором функций, начал делать через статический класс,...

Какую ссылку добавить для решения проблемы "namespace name 'Drawing' does not exist in the namespace 'System'"
уже который раз сталкиваюсь с этой проблемой. Ошибка: The type or namespace name 'Drawing' does...


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

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

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