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

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

07.08.2008, 14:12. Показов 2716. Ответов 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
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
07.08.2008, 14:12
Ответы с готовыми решениями:

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

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

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

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

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

Цитата Сообщение от urkovsky Посмотреть сообщение
какже package`ы :'(
Я думаю,ты быстро привыкнешь к отсутствию пэкэджей )
0
7 / 7 / 0
Регистрация: 07.08.2008
Сообщений: 22
07.08.2008, 16:07  [ТС]
Спасибо за поддержку и наставление на путь истинный
0
Эксперт С++
 Аватар для XuTPbIu_MuHTAu
2256 / 771 / 25
Регистрация: 27.05.2008
Сообщений: 1,496
07.08.2008, 16:11
Если честно,я сам иногда грешу всякими такими штуками. В частности,
иногда реализую функцию в теле,а потом переношу. Бывает удобней. Не за что, успехов
0
 Аватар для Spo1ler
296 / 56 / 5
Регистрация: 22.05.2008
Сообщений: 788
07.08.2008, 19:32
кстати, для создания классов легче уж настроить 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
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
07.08.2008, 19:32
Помогаю со студенческими работами здесь

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

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru