Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
 
deniska91
54 / 3 / 3
Регистрация: 17.05.2014
Сообщений: 72
#1

Сделать отдельный код невидимым - C++

17.05.2014, 14:39. Просмотров 298. Ответов 2
Метки нет (Все метки)

Суть вопроса такова:
Имеется набор классов (основной класс и дополнительные), которые взаимодействуют между собой. Как сделать так, чтобы при подключении к какому-нибудь проекту этого класса, программист видел и имел доступ только к специальной функции, которая вызывала бы конструктор главного класса и при этом не видел ничего другого через свою IDE). Т.е. как сделать такую "прослойку" отделяющую два кода. Как это реализовано в разных библиотеках, когда подключаешь заголовочный файл библиотеки и можешь видеть только то с чем можешь работать?
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.05.2014, 14:39
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Сделать отдельный код невидимым (C++):

Как сделать класс невидимым снаружи - C++
Хочу в одном "*.h'нике" сделать 2 класса, один основной и второй вспомогательный. Как сделать чтоб при инклуде этого файла второй класс был...

Вынести код создания списка в отдельный модуль - C++
#include <iostream> #include <conio.h> using namespace std; struct A { int key; }; class List { public:

Как сделать код абстрактным - C++
pojalusta pomagite u menya est cod dlya igri tetrisa no ya ne mogu sdelot evo abstraktnim!!! esli kto to mojet mne pomoch ...

Сделать с кода Pascal код C++ - C++
Нужно переделать код Паскаля на Си. Я немного сделал не похоже ето не то. program Lab6; uses crt; const nmax=20; var a:array...

Как сделать компактный код ? - C++
Ребят, дайте советы по тому как сделать свой код компактнее, красивее и читабельней. Вот пример моего стиля программирования : ...

Как сделать код меньше - C++
Здравствуйте, вообще меня интересует вопрос как можно уменшить этот код switch(a){ case 1: field=1; break; case 2: field=1; break; ...

2
Убежденный
Ушел с форума
Эксперт С++
15701 / 7211 / 1139
Регистрация: 02.05.2013
Сообщений: 11,637
Записей в блоге: 1
Завершенные тесты: 1
17.05.2014, 14:53 #2
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Создайте нужные функции для управления своими классами, скомпилируйте
их в библиотеку, а клиенту отдайте заголовок с объявлениями этих функций.
Это, кстати, стандартный вариант экспорта C++-сущностей в другие среды,
не поддерживающие интерфейсы в стиле C++ (т.е. для них создается как
бы промежуточное "представление" в стиле C).

Другой вариант - паттерн "мост" (bridge, или pimpl).
Создается два набора классов, один интерфейсный, второй для реализации.
Интерфейсный класс хранит только указатель на реализацию и public-методы,
относящиеся к интерфейсу, а все детали спрятаны в классах реализации.
0
deniska91
54 / 3 / 3
Регистрация: 17.05.2014
Сообщений: 72
17.05.2014, 15:42  [ТС] #3
Спасибо огромное. Я сразу смотрел в сторону паттерна Pimpl, но никак не мог разобраться как его применить к набору классов и не был уверен что именно он мне нужен. А сейчас когда вы направили меня как раз к нему, разобрался поглубже и понял как это реализовать.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.05.2014, 15:42
Привет! Вот еще темы с ответами:

Код более понятней сделать - C++
Помагите сделать код более понятней и читаемым #include "stdafx.h" #include <iostream> using namespace std; template <class Type>...

Можно ли данный код сделать короче? - C++
#include<iostream> #include<iomanip> int main() { int r,f,a,b,c,d,x,y; cout<<"Vvedite znachenie r:"; cin>>r; ...

код нужно сделать через указатель ! - C++
# include <iostream.h> # include <conio.h> # include <stdlib.h> const int n=3, m=3; int main() {int a; int i, j, maxzn; ...

Оператор switch, можно ли сделать код проще? - C++
Дана задача посчитать гласные в тексте введенном с клавиатуры, вопрос ниже... #include <iostream> #include <string> #include...


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

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

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