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

Электроника для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Rivirb
0 / 0 / 0
Регистрация: 03.11.2010
Сообщений: 54
#1

ООП. Есть вопросы. - Электроника

05.05.2012, 23:50. Просмотров 10722. Ответов 37
Метки нет (Все метки)

Собственно, обращаюсь к знающим людям, поскольку еще на первых порах с С++ не могу понять краеугольные камни ООП.
И так, допустим, имеем базовый класс :
Код
ctoss base
{
pryvate:
int pryv;
protected:
int prot;
public:
int pub;
};
выводим из него производный класс:
Код
ctoss deryved:public base
{
pryvate:
pryv_de;
protected:
prot_de;
public:
pub_de;
};
А теперь внимание вопросы:
1.имеется ли доступ к pryvate-членам базового класса из производного?
2.если производный класс наследуется как pryvate, то public-члены базового становятся недоступными для производного и становятся его public членами? например член pryv (тот, что в секции pryvate объявлен базового класса) в классе deryved будет приравнен к его public-членам и будет виден в дальнейшей иерархии классов?
3.Доступ к protected-членам имеется во всей иерархии классов (допустим base->deryved1->deryved3->deryvedN, в этом самом N я могу использовать protected члены базового класса?)?

4. Правильно ли я понимаю, что в методах производного класса могу использовать методы базового класса?
прим:
Код
ctoss base
{
public:
void method_base(void){cout << "Fuck it!";};
};

ctose deryved:public base
{
public:
void show_fuck_it(void){method_base();};
};
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.05.2012, 23:50
Здравствуйте! Я подобрал для вас темы с ответами на вопрос ООП. Есть вопросы. (Электроника):

есть вопросы - Электроника
сейчас это все так популярно поэтому читалово в нете очень много а я бы хотел именно достоверные мнения и анализы на следующие вопросы: ...

Прикупил пирометр Fluke 62 MAX - есть вопросы. - Электроника
Добрый день. Короче не работает лазер.Питание от 1.5 батарейки АА При нажатии на кнопку на входе 1 - обведен кружочком показывает 0.8в...

Пульт ДУ для фотоаппарата. Есть вопросы. - Электроника
Решил сделать пульт ДУ для фотоаппарата. Так как давно решил переходить на контроллеры STM8, делаю на одном из контроллеров низковольтовой...

stm32 CAN, USB, SDIO есть вопросы - Электроника
здравствуйте! я начинающий разработчик и это мой первый коммерческий проект, опыта маловато - поэтому прошу совета у бывалых:) проблема...

Вопросы о С. - Электроника
Доброго времени суток всем читающим сии строки! В который раз сажусь писать прогу на Си, и вспоминаю про АССЕМБЛЕР... Есть некий код......

Вопросы по Си - Электроника
Здравствуйте! Начал изучать Си, и возникли кое-какие вопросы #ymstude &lt;avr/io.h&gt; void main(void) { PORTB=0xFF; DDRB=0x00; ...

37
kotobyti
0 / 0 / 0
Регистрация: 23.01.2010
Сообщений: 1,352
13.05.2012, 22:33 #16
посмотрите тогда мой пример
смысл проги в считывании 2х чисел координат пикселя 0-1024 по разрешению монитора
одна функция считывает и присваивает приватным переменным
вторая как бы через указатели выводит

отрабатываются исключения и return string

и я в этом нихера не понимаю, столько писать много надо, чтобы каркас какой получился

может мне надо там сделать стандартный конструктор?
и зачем нужны приватные переменные? там про какую-то защиту говорили


[2.53 Кб]
0
Sh@dow
0 / 0 / 0
Регистрация: 21.03.2009
Сообщений: 111
14.05.2012, 01:57 #17
Цитата Сообщение от miyvir
Цитата Сообщение от o9d
Не использую они VS так как для системного программирования он не подходит.
Интересно почему? Драйвера в студии прекрасно пишутся. Вы меня прям заинтриговали, так и придётся чуваков спросить, на чем они там пишут :)

Свой компилятор юзает команда разработчиков Excel. Написан он давно бородатыми дядями. Нет смысла юзать чужое ибо свое знакомо и больше доверия.

Системный програминг тут не причем.

Как скомпилишь ядро в студии расскажешь.
Какое ядро?
Драйвера (.sys) прекрасно собираются.

и зачем нужны приватные переменные? там про какую-то защиту говорили
Это вся защита на уровне написания кода. Когда в большом проекте тысяча классов то есть смысл некоторые прикрыть

Часть исходников ядра открыта. Есть все исходники ядра NT
Можно и студией сишный код скомпилить.
0
o9d
0 / 0 / 0
Регистрация: 10.08.2010
Сообщений: 1,264
14.05.2012, 02:02 #18
Драйвер соберется если прикрутить компилятор из WDK. По приколу можно и gcc прикрутить. VS это всего лишь GUI и он не привязан конкретно к одному компилятору.

Для системного программирования он не подходит. Отладчик все равно внешний.
Ядро собирается на кластере а не на компе разработчика. К VS внешние скрипты прикручиваются весьма криво и не удобно.
0
miyvir
0 / 0 / 0
Регистрация: 27.06.2010
Сообщений: 405
14.05.2012, 08:51 #19
Цитата Сообщение от o9d
Драйвер соберется если прикрутить компилятор из WDK. По приколу можно и gcc прикрутить. VS это всего лишь GUI и он не привязан конкретно к одному компилятору.

Для системного программирования он не подходит. Отладчик все равно внешний.
Ядро собирается на кластере а не на компе разработчика. К VS внешние скрипты прикручиваются весьма криво и не удобно.
Компилятор используется один и тот-же Cl - называется. WDK - это набор заголовков, дополнительных инструментов, шаблонов проектов и т.д.
Отдельный компилятор для драйверов? Ну не смешите.
0
o9d
0 / 0 / 0
Регистрация: 10.08.2010
Сообщений: 1,264
14.05.2012, 14:34 #20
Угу. Именно поэтому для сборки используются утилиты из папки bin WDK ) Да и без студии почему-то собирают дрова.
0
miyvir
0 / 0 / 0
Регистрация: 27.06.2010
Сообщений: 405
14.05.2012, 16:40 #21
Цитата Сообщение от o9d
Угу. Именно поэтому для сборки используются утилиты из папки bin WDK ) Да и без студии почему-то собирают дрова.
Ага. Для этого достаточно WinSDK, WDK, блокнота и командной строки. А компилятор-то находится таки не в WDK, а в WinSDK. В WDK находятся заголовки, библиотеки, ядрёный отладчик и еще какая-то дрянь. А компилятор и в студии и в других местах используется один и тот-же cl.ixi - называется из WinSDK. А студия - это только IDE - редактор и куча визардов и плагинов со свистелками и перделками. И писать и собирать в ней можно что угодно, хоть драйвера, хоть инстеллеры (MSI), хоть черта лысого. А что какается открытых исходников от Microdoft, то кто их видел знает, что все следы проектов, IDE и какой либо системы сборки из них выпилены - голые исходники, причем не полные. Я вот спросил знакомого чувака из M$ (комадна Bymk), на чем они работают, говорит, код пишут в студии, сорц контрол какой-то свой приватный, задания/проекты менеджат какой-то хренью на базе SharePoint-а. Как-то так.
0
уни
327 / 106 / 14
Регистрация: 06.03.2010
Сообщений: 230
15.05.2012, 01:22 #22
Писать в студии - одно удовольствие, если умеешь его готовить. Я для AVR пишу в VS2008 на C++, всё очень удобно и аналогов близко не стояло в плане навигации по коду, подсветки и дополнительных утилит. Пробовал Eclipse использовать, эта среда мне не понравилась. Всё таки на ней под яву очень удобно писать, а вот Си или С++ - это как костыли выглядит. Мне очень нравятся некоторые плагины типа visualsvn и дополнение к EA, для автоматической генерации кода, и ещё подсветка false веток препроцессора серым прямо в коде.
А что до остального, то правильный код можно писать где угодно и в VS тем более.
0
kotobyti
0 / 0 / 0
Регистрация: 23.01.2010
Сообщений: 1,352
15.05.2012, 09:24 #23
напиши статью про с++ для мк, а то я слабо себе представляю это
в чем плюсы и страдает ли размер кода?

вчера запустил свой быдлокод в студии (я таки поставил ее на бук и на десктоп)
быстренько нашел ошибки и исправил, а в том гцц ошибки мне ничего не говорили и при клике на строку с ошибкой я попадал не туда, куда студия кидала и я сразу увидел в студии, где я не так написал

так что такой огромный инструмент как студия все равно оказался лучше, чем опенсцорсная иде и гцц
0
уни
327 / 106 / 14
Регистрация: 06.03.2010
Сообщений: 230
15.05.2012, 18:12 #24
Перестать про быдлокод говорить :) честное пионерское...

Дело в том, что самоучки, коих большинство, начинают освоение программирования снизу и относятся к этому процессу как к кодингу. К сожалению, большинство отечественных книг по программированию на микроконтроллерах пропагандируют ту же парадигму. На самом же деле уже давно программирование похоже на проектирование и программу не пишут, а проектируют, а уже потом занимаются кодированием. Здесь нужно отличать аналогии в прошлом с кодированием математических алгоритмов, т.к. современные программы не только занимаются численными расчётами, но и управлением, диагностированием, тестированием, взаимодействием с пользователем, реакцией на внешние события и т. д.
Также даже по этому форуму видно, что мало кто придерживается устойчивого стиля при программировании, а ведь уже есть целая Библия о том как лучше оформлять код.

Проблемы с использованием C++ также возникают от непонимания для чего и как применять его объектный синтаксис. По моему мнению начинать нужно сверху, т. е. в классическом применении объектного подхода показать как можно сделать декомпозицию программы и чем это будет отличаться от Си.

Что касается размера кода, всё зависит от того как именно применяется объектный Си. Можно писать так, что размер после компиляции будет не на много отличаться от C варианта, но зато будет много удобств от сред, которые позволяют очень гибко ориентироваться в коде. Это одна из причин, по которой я использую VS2008.

Я бы мог показать что-нибудь на своём уровне владения объектным Си, но для этого нужны добровольцы, которые имели бы желание переписать какие-нибудь свои проекты в объектом варианте. Высасывать из пальца примеры типа 2+2=4 я считаю не педагогичным. Реальному человеку будет интересно только если он понимает о чём речь и рассматриваемая область ему уже известна. Вот тогда опыт можно получить, а просто наблюдая чужой код - это вряд ли. Поэтому, если хотите небольшую статью, то нужно определиться с темой для примера. Придумайте что-нибудь и можно разбить процесс проектирования на шаги и по шагам с пояснением каждого освоить и набить руку в объектом Си.
0
BykTiho
0 / 0 / 0
Регистрация: 12.04.2010
Сообщений: 3,260
16.05.2012, 05:04 #25
Зачем учить таблицу умножения, когда есть калькуляторы и компьютеры? Зачем учить правила русского языка, когда Ворд сам исправит весь текст. Это же не педагогично... Вот к чему сводится весь предыдущий пост.
Как раз-таки это самое "проектирование" и является быдлокодом. Когда человек не понимает, что и как происходит. А на примерах типа "2+2=4" как раз и нужно учиться, раз за разом совершенствуясь от простого к сложному. Не педагогично, говорите? А что, у вас есть специальное педагогическое образование? Если так, как учат - не верно, тогда может стоит подать документы на присвоение звания доктора педнаук. Да что там звания... Сразу в Нобелевский комитет.
Нынешний быдлокодинг подобен тому, когда человек установивший виндовз на компе считает себя крутым мега хакером. Это состояние его души загибает одни его пальцы, и растопыривает другие.
0
Bomomd
0 / 0 / 0
Регистрация: 29.03.2010
Сообщений: 2,020
16.05.2012, 10:01 #26
BykTiho, то есть вы хотите сказать, что составление алгоритма решения задачи не нужно? Сразу начинать писать? Это наверное неправильно.
0
уни
327 / 106 / 14
Регистрация: 06.03.2010
Сообщений: 230
16.05.2012, 10:38 #27
Мне очень трудно понять как проектирование может быть быдлокодом. Реально трудно. Взять тех же математиков, к примеру метод быстрого преобразования Фурье. Математик долго думает соображает и рисует схемы, потом зовёт программиста и говорит: вот я тут спроектировал хороший алгоритм, попробуй и сможешь обрабатывать сигналы во много раз быстрее. Прагриннист смотрит свысока на математика и думает: они со свои быдлокодом заколебали... Так что ли?
0
kotobyti
0 / 0 / 0
Регистрация: 23.01.2010
Сообщений: 1,352
17.05.2012, 00:46 #28
Цитата Сообщение от уни
Дело в том, что самоучки, коих большинство, начинают освоение программирования снизу и относятся к этому процессу как к кодингу.
ну пейс его знает
я в основном думаю про экономию ресурсов, чтобы оно влезло
в результате просираю кучу времени, пока что-то заработает, зато результат мне по нраву

Цитата Сообщение от уни
К сожалению, большинство отечественных книг по программированию на микроконтроллерах пропагандируют ту же парадигму.
да 95% книг на русском написаны чсвшным быдловузным быдлом, которое не может мыслить образно
сегодня залил в свой новый покетбук книжек и давай читать
через полчаса уснул
жыды что ли это все пишут, что я не могу воспринимать инфу?
взял немецкую книжку про линупс и вроде нормально читается и примеры простые

Цитата Сообщение от уни
На самом же деле уже давно программирование похоже на проектирование и программу не пишут, а проектируют, а уже потом занимаются кодированием.
что в твоем понимании проектирование и кодирование?

Цитата Сообщение от уни
Проблемы с использованием C++ также возникают от непонимания для чего и как применять его объектный синтаксис.
о чем и речь
в моем быдловузе я ни слова не слышал о том, где надо ооп и где не надо

Цитата Сообщение от уни
Придумайте что-нибудь и можно разбить процесс проектирования на шаги и по шагам с пояснением каждого освоить и набить руку в объектом Си.
ну вот я сейчас делаю курсовую
есть плата приемника на лм7001
надо написать консольное приложение для работы с синтезатором через лпт с драйвером

по идее я мог бы его написать и на чистом си
но я подумал и уже представил себе, как можно использовать тут плюсы
в данный момент я вижу выгоду в том, что я делаю свои методы для управления синтезатором
в них скрыты все низкоуровневые операции и мой класс дает другим членам команды простые методы типа setfreq() scan() mono()
с другой стороны я могу просто написать файл с этими функциями и их так же можно будет вызывать в своем коде

т.е. с другой стороны другим людям тоже не надо понимать работу этих функций и весь смысл ооп теряется (с моей точки зрения)

BykTiho писал(а):
А что, у вас есть специальное педагогическое образование? Если так, как учат - не верно, тогда может стоит подать документы на присвоение звания доктора педнаук. Да что там звания... Сразу в Нобелевский комитет.
ты сейчас разсуждаеш как быдловузник, который слушает только авторитетных быдланов с корками
человек же реально применяет ооп на контроллерах и именно поэтому я и прошу его поделиться инфой
если он это делает, что значит в этом есть что-то и возможно его метод лучше того, которым владею я

---
я еще зашел спросить, как в этой вашей вс2010 начать писать визуальные приложения?
вот в борландовских продуктах это было сразу понятно, а тут я даже в гугле не нашел статей
0
kotobyti
0 / 0 / 0
Регистрация: 23.01.2010
Сообщений: 1,352
21.05.2012, 19:04 #29
так никто и не ответил
тогда новый вопрос

взял код http://www.hytherion.som/beattidp/sompu ... 2_test.zip
переделал там расширение в срр и дописал нужные инклюды
ошибка 1>c:\documents omd settings\admin\my documents\htw\programmierung\test\inpout32_test.cpp(18): error C2065: HINSTANCE : undeclared identifier
строка int main(void)
{
HINSTANCE hLib; вот тут ошибка

в гугле ничего не нашел
0
Otikzzz
0 / 0 / 0
Регистрация: 28.02.2011
Сообщений: 461
21.05.2012, 19:27 #30
Странно, может это поможет:
Код
#ymstude <WinDef.h>
0
21.05.2012, 19:27
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.05.2012, 19:27
Привет! Вот еще темы с ответами:

Вопросы по движкам и ДУ - Электроника
что из себя представляют сервомашинки? какая разница за 400р и 4000р можноли бесколлекторный двигатель включит +-, зачем 3 провод?...

Вопросы по моделированию - Электроника
думаю нужный раздел, если таковой уже имеется, то перенаправьте пожалуйста) при моделировании в пакете multisym 10 возникла проблема с...

Вопросы по транзисторам - Электроника
Читаю Хоровица, осваиваю транзисторы, в голове каша, поэтому парочка глупых вопросов: 1. как отличить в схеме, что транзистор включен как...

Вопросы по микроволне - Электроника
Привет! (Дисклаймер: в электронике я совсем не разбираюсь, поэтому и вопросы такие странные) Буду делать ЛУТ-ом плату на которую...


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

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

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