<tagezi>
mikekaganski: слушай, а в с++ класс может быть публичным или защищенным?
<tagezi>
приватным?
<tagezi>
чото я как-то теряюсь.. у меня в голове всплывает только по отношению к свойствам и методам это
<mikekaganski>
наследование может, а сам класс - нет
<mikekaganski>
если ты объявляешь класс в составе определения другого класса, то видимость такого объявления тоже определяется тем, в какой секции объявление
<tagezi>
ааа, я понял, спасибо
<tagezi>
эта учеба блин.. вот не понятно почему у меня в дипломе 4.85 средний бал.. нихрена не помню уже
UNIm95 has joined #libreoffice-ru
<tagezi>
mikekaganski: что находиться в папках inc?
<tagezi>
вот пример.. в basdoc есть инклюд iderid, но я не вижу чтобы этот класс использовался
kompi has joined #libreoffice-ru
<kompi>
tagezi: а что дает чистка кода?
<tagezi>
код чистит
<kompi>
Цель?
<tagezi>
чисты код
<kompi>
А подробнее?
<kompi>
mikekaganski: его тролль покусал?
<tagezi>
блин, ну это абстракция, когда человек пытается его сделать более читаемым, более логичным, ну, и ускорить выполнение, убирая излишние элементы
<tagezi>
хотя, если верить mikekaganski, то компиляторы теперь на столько умные, что даже если ты на брайнфаке будешь писать, он всеравно сделает очень качественный и быстрый бинарник из с++
<kompi>
А есть реальное ускорение от чистки кода?
<tagezi>
а что называется реальным?
<tagezi>
Например сравниваем МСО и ЛО.. ЛО никогда не будет работать также быстро как МСО, потому что у МСО 2/3 библиотек выполняются внутри системы.. можно сказать он надстройка над системой
<tagezi>
а у ЛО свои велосипеды, и всё что для МСО пашет внутри системы, для ЛО работает во вне
<tagezi>
если про ускорение самого кода.. то многое зависит от количества использования операций и мощности компьютера, некоторые вещи просто не будут видны на мощных компах, так как им пофигу на 1,5 тысячи лишних тиков
<kompi>
Если мсо надстройка над виндой, то как он работает в вайн?
<tagezi>
хреново
<tagezi>
kompi: если очень хочешь, сравни работу МСО в вайне и ЛО в линухе
<kompi>
Я с этого блог начинал
<tagezi>
и как?
<kompi>
Мсо жрет столько же озу, как и либра, но даже в вайне гуи болееплавный и симпатичный
<tagezi>
работает быстрее?
<kompi>
Чем нативный либра в линксе
<kompi>
На взгляд юзера да, работает быстрее
<JohnDoe_71Rus>
mso2010 работает в reactOS
<kompi>
РеактОС не нужна
<tagezi>
мсо не нужно
<tagezi>
а не на взгляд?
<tagezi>
какая разница как это выглядит... ты про скорость говоришь, а не про выглядит
<kompi>
Сделайте мне не мерцающий гуи в либре и мсо пойдет лесом
<tagezi>
у меня не мерцает, так что ничем не могу помось
<kompi>
Скорость набора текста от софта не зависит
<tagezi>
тогда нафрен ты вообще спрашивал? [13:42:50] <kompi> А есть реальное ускорение от чистки кода?
<kompi>
tagezi: открой math и поезди мышкой над панелью с операторами
* JohnDoe_71Rus
не мерцает
<kompi>
Я спрашивал из желания узнать
<tagezi>
а потом начал тролить
<kompi>
Ну а у мня мерцает, на работе вообще жутко, дома не так страшно, но все равно есть
<mikekaganski>
Вот только отвернулся на минутку - а они тут успели настрочить!
<mikekaganski>
Насчёт умных компиляторов - я говорил про вполне конкретную вещь. Вообще чистка кода обычно ускоряет работу, и иногда очень прилично
<mikekaganski>
Но, кстати, как верно было замечено, очень важно не только быстродействие кода, но и его понятность, читаемость.
<mikekaganski>
Если учесть степень документированности кода, его понятность - жизненно важна.
<tagezi>
mikekaganski: а с пол второго? )
<mikekaganski>
Ну, насчёт ненужных инклюдов - мы их тоже чистим, когда обнаруживаем
<mikekaganski>
тут может быть побочный эффект от инклюда внутри инклюда, но тогда всё равно нужно "выправить" это и инклюдить не iderid.hxx, а tools/resid.hxx
<tagezi>
mikekaganski: а разве инклюды наследуются?
<mikekaganski>
Конечно
<tagezi>
эм
<tagezi>
а почему тогда нужно и в hxx и d cxx добавлять?
<mikekaganski>
с чего это?
<tagezi>
ну, вроде я так помню
<mikekaganski>
если ты добавил в hxx, то уже в cxx, которые его используют, не нужно добавлять
<tagezi>
эээммм
<mikekaganski>
но не нужно всё добавлять в hxx, потому что это интерфейс и должен содержать только то, что нужно для использования заголовка
<mikekaganski>
поэтому часть добавляют в заголовок, а часть - в cxx
<tagezi>
и естественно сравнение происходит как заложено в языке программирования, и так как каждый язык реализовывался для своего, то и сравнения проходят по разному
<JohnDoe_71Rus>
я краем уха слышал что придумали языки, типа "жемчужины" где не надо заморачиватся с типами. компутер сам все сделает
<mikekaganski>
Да, точно. Там один оператор всего используется: MakeMeCool
<JohnDoe_71Rus>
MyCoolProg
<tagezi>
в бейсике не нужно заморачиваться с типами
<tagezi>
но его ещё в 70 придумали )))
<mikekaganski>
на самом деле, конечно, много языков помогают с типами, но даже в бейсике нужно заморачиваться, если задача нетривиальная
<JohnDoe_71Rus>
не, int float басику вроде надо объяснять
<tagezi>
нет, не нужно
<tagezi>
даже строка в инт сама превлащается
<tagezi>
другое дело что можно управлять типами, чтобы контролировать сравнение, но это другой вопрос
<tagezi>
mikekaganski: о, ещё вопрос вспомнил, не понимаю этого
<tagezi>
вообще, меня эти функции которые ничего не делают, убивают просто
<tagezi>
они даже не функция разыменования
<mikekaganski>
1. Там, где нет имени переменной.
<mikekaganski>
В данном случае это виртуальная функция, определённая в предке, и там заданы все её аргументы (с типами).
<mikekaganski>
Теперь в потомке мы её определяем, и в данном конкретном потомке нам пофиг на значение одного из аргументов
<tagezi>
потому что функция вообще ничего не делает ))
<JohnDoe_71Rus>
значит ответ "потому что так заведено предками"
<mikekaganski>
тогда мы всё равно обязаны указать, что здесь должен быть указатель на объект, но поскольку мы не будем ничего с ним делать, то его имя нам пофиг
<tagezi>
но онаже протектед, тоесть доступна из потомка
<tagezi>
хотя и виртуальная
<mikekaganski>
больше того, если мы всё-таки укажем имя в *реализации* метода, у нас будет предупреждение компилятора о неиспользуемой переменной, а в дженкинсе все предупреждения - ошибки
<mikekaganski>
и что, что протектед?
<mikekaganski>
она переопределяемая, то есть встаёт строго вместо предковой
<mikekaganski>
и обязана строго соответствовать сигнатуре предка
<tagezi>
я просто не понимаю, зачем нам нужно наследовать виртуальную ничего не делающую функцию
<mikekaganski>
(имена аргументов неважны, но типы и порядок - обязательно)
<mikekaganski>
обрати внимание: в предке эта функция определена как =0
<mikekaganski>
то есть "чисто виртуальная", нереализованная, и *обязанная быть реализованной в потомке*. Класс с такими функциями - *чисто виртуальный* класс, не может быть создан
<mikekaganski>
чтобы создать класс, он обязан реализовать *все* чисто виртуальные функции предка, пусть даже пустышками
<mikekaganski>
иначе будет ошибка компиляции
<tagezi>
то есть клас потомок должен наследовать все виртуальные функции?
<tagezi>
эм..
<mikekaganski>
класс-потомок наследует всё, всегда. Он *может* переопределить виртуальные функции, если ему нужно. Но он *обязан* определить все чисто виртуальные функции, доставшиеся ему.
<mikekaganski>
Ну, точнее тот потомок, который непосредственно будет создаваться
<tagezi>
чото я не понимаю.. я всегда считал, что класс это абстрактная модель.. и я не обязан наследовать весь его
<tagezi>
тоесть я наследую только то что нужно, а остальное оставляю не тронутым
<mikekaganski>
обязан. На всякий случай - наследовать и (пере)определять - это разные вещи
<mikekaganski>
погоди!
<tagezi>
и таким образом. я могу делать абстракуии, которые будут более универсальны
<mikekaganski>
именно: наследовать - это получить от предка, не обязательно это менять
<mikekaganski>
а вот переопределять - это по желанию, *кроме чисто виртуального*, то есть функции, которые у предка =0
<mikekaganski>
их определять *обязательно*ю
<tagezi>
чую нужно на ночь читать страуструпа, а не конечные автоматы
<tagezi>
mikekaganski: раскажи ещё про директорию inc. Что там за заголовочные файлы валяются? он есть в основной директории модуля и в поддиректории сырцов
<mikekaganski>
эээээ....
<mikekaganski>
ну, инклюды.... Я понимаю, что выгляжу, как дурак, но не знаю, что сказать
<tagezi>
))
<tagezi>
почему часть инслюдов в инк, а часть рядам с cxx?