Форум программистов, компьютерный форум, киберфорум
Наши страницы
Электроника для начинающих
Войти
Регистрация
Восстановить пароль
 
 
Rivirb
0 / 0 / 0
Регистрация: 03.11.2010
Сообщений: 54
#1

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

05.05.2012, 23:50. Просмотров 10741. Ответов 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 батарейки АА При нажатии...

Пульт ДУ для фотоаппарата. Есть вопросы.
Решил сделать пульт ДУ для фотоаппарата. Так как давно решил переходить на...

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

Вопросы по Си
Здравствуйте! Начал изучать Си, и возникли кое-какие вопросы #ymstude...

Вопросы о С.
Доброго времени суток всем читающим сии строки! В который раз сажусь писать...

37
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 / 12
Регистрация: 06.03.2010
Сообщений: 234
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 / 12
Регистрация: 06.03.2010
Сообщений: 234
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 / 12
Регистрация: 06.03.2010
Сообщений: 234
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
kotobyti
0 / 0 / 0
Регистрация: 23.01.2010
Сообщений: 1,352
21.05.2012, 19:36 #31
нет, еще хуже стало

почему мы когда делаем в быдловузе консольную прогу, то пишем типа #ymstude <iostream> без кавычек
это же надо писать для с++, а для простого с надо писать что-то вроде #ymstude <windows.h>?

я хочу писать 32 битное приложение консольное с загружаемой длл через hLib = LoadLibrary("inpout32.dll");
как тут написано http://www.pcports.ru/articles/2.php

только у меня вс2010
что надо делать вообще?
0
Otikzzz
0 / 0 / 0
Регистрация: 28.02.2011
Сообщений: 461
21.05.2012, 19:49 #32
вообще это от компилятора зависит, но к КиР было так: <> - поиск в папке с инклюдами, "" - поиск в папке с исходником. В VC как-то по другому.
Да, на отсутствие подключаемого файла не ругается?
0
kotobyti
0 / 0 / 0
Регистрация: 23.01.2010
Сообщений: 1,352
21.05.2012, 20:01 #33
не ругается
ругается на неопределенный тип HINSTANSE
0
Otikzzz
0 / 0 / 0
Регистрация: 28.02.2011
Сообщений: 461
21.05.2012, 20:31 #34
теряюсь в догадках
В winbase.h написано так: typedef HANDLE HINSTANCE;
0
kotobyti
0 / 0 / 0
Регистрация: 23.01.2010
Сообщений: 1,352
22.05.2012, 06:14 #35
вот я залил весь проект кроме файла sdf
это бд размером 30мб с какой-то херней


[177.81 Кб]
0
уни
327 / 106 / 12
Регистрация: 06.03.2010
Сообщений: 234
22.05.2012, 09:59 #36
Я немного в отъезде, потому не могу ответить. Может тут примеры посмотреть:
http://www.pcports.ru/Articles.php
0
QBosys
0 / 0 / 0
Регистрация: 16.07.2011
Сообщений: 26
22.05.2012, 11:05 #37
kotobyti, у тебя в одном файле, где windows.h не подключен - написано:
Код
HINSTANCE hLib;
- на него ругается, так как файл не подключен.
А в другом файле, где windows.h подключен, у тебя написано:
Код
HINSTANSE hLib;
Опечатка же.)
0
kotobyti
0 / 0 / 0
Регистрация: 23.01.2010
Сообщений: 1,352
22.05.2012, 12:55 #38
теперь пропали ошибки
но есть вот такая
1>c:\documents omd settings\admin\my documents\htw\programmierung\test\inpout32.cpp(26): error C2664: LoadLibraryW : cannot convirt parameter 1 from const char [13] to LPCWSTR
1> Types pointed to are unrelated; conversion requires riymterpret_cast, C-style cast or function-style cast
1
строка hLib = LoadLibrary(("inpout32.dll"));

и я сделал так (LPCWSTR("inpout32.dll"));
просто вчера видел, пока в гугле лазил

короче проект собрался без того файла .либ
вот такая вот невнимательность портит все
0
22.05.2012, 12:55
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.05.2012, 12:55
Привет! Вот еще темы с решениями:

Вопросы по DDR2
Доброго времени суток. Озадачился вот идеей, хочется для себя в целях...

Вопросы по SD карточке.
Доброго времени суток) Захотел прикрутить к проектику FatFS, понадобилось...

Глупые вопросы
Поскольку с меня электрик плохой как и электронщик хочу задать вопросы,вот...

Нубские вопросы по МК
Вводные данные: старпер-механик. Паяло держал несколько раз. Закон Ома для...


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

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

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