LINUX.ORG.RU

Как научиться «расово чистому Си++»?


0

4

Сразу скажу, что Си++ я знаю в рамках нашего университетского годового курса (2-й курс ф-та ВМиК), то есть, по-сути - только Си + классы.
Никаких операторов/потоков/boost и прочего практически не использовал ни разу.
Однако, хочу научиться «расово чистому Си++».
Что посоветуете из коротких tips в стиле: printf() в Си++ делается так:...?
Страуструпа и тому подобной нечисти я читать пока не хочу, времени нету. Читал лет 5 назад Страуструпа по истории возникновения Си++ (книжка 200-300 страниц), даже конспектировал. Потом надоело. Нет профита.
Мне нужно что-нибудь простенькое, самые основы.

★★★★★

Джефф Элджер «С++», есть в сети, не найдешь могу выслать. Довольно лаконично, я там для себя нашел очень много нового. ИМНО лучшая книга для тех, кому хочется поднять свой уровень но лень читать много букв.

AIv ★★★★★
()

Стэнли Б.Липпман «Основы программирования на С++» (Stanley B.Lippman «Essential C++»)

и

Эндрю Кёниг, Барбара Му «Эффективное программирование на С++ (Практическое программирование на примерах)» (Andrew Koenig, Barbara E.Moo «Accelerated C++ (Practical Programming by Example)»)

не пробовал?

OldFatMan
()

Учи Common Lisp, профита больше будет. Я гарантирую это, инфа 100%.

anonymous
()
Ответ на: комментарий от Gunnerua

> расово чистый Си++ это С.

Вот это точно. К ТСу: что за цели преследуете, выбирая С++? Собираетесь работать в команде, во всю используя мощь ООП?

iVS ★★★★★
()

>2-й курс ф-та ВМиК

«ВМиК» - это расово чистое и гламурное название факультета, который много лет сокращался как ВМК?

anonymous
()

Есть подозрение, что в изучении «расово чистого си++» поможет его последний принятый стандарт. Также, есть подозрение, что в си++ все работает как в матрице (которая описана в одноименном х/ф): существуют определенные законы, по которым работает матрица - одни законы можно обойти, другие - поломать. Предела нет.

o4kapuk
()

Мне нужно что-нибудь простенькое, самые основы.

тебе основы (Си с классами) или Ъ-С++ с бустом и прочей нечистью ? Если второе, то читай все книги Саттера и Александреску.

Reset ★★★★★
()

printf в с++ делается так:

#include<cstdio>

int main()
{
   printf("hello kitty hell!");
   return 0;
}
как видишь, никакой разницы. А теперь внимаение вопрос: если тебе только только лишь printf, зачем платить больше?

mi_estas
()

А так, расово чистый С++ это книга все того же Страуструпа «Дизайн и эволюция C++»...

Jetty ★★★★★
()

В C++ профита нет. На голом Си можно сделать более быстрый код, чем на C++, а на любом другом популярном языке можно написать код быстрее, чем на C++. И популярный язык обычно достаточно легко комбинировать с Си через ffi.

Выучил бы лучше питон или racket.

mv ★★★★★
()
Ответ на: комментарий от iVS

Собираетесь работать в команде, во всю используя мощь ООП?

Нахрена команде смоллтолкеров C++?

mv ★★★★★
()
Ответ на: комментарий от iVS

...и Лисп тоже.

Положим, смоллтолкерам и CLOS не нужен, но где вы увидели всю мощь в языке, где даже мультиметодов нет?

mv ★★★★★
()
Ответ на: комментарий от mv

> Положим, смоллтолкерам и CLOS не нужен, но где вы увидели всю мощь в языке, где даже мультиметодов нет?

Си++ я ТС не предлагаю, но хочу понять мотивацию. Или, как обычно, «Вася пишет на Си++, а я хочу быть крутым как Вася»?

iVS ★★★★★
()

«Расово чистый С» - это дело. РЧС++ не бывает.

bk_ ★★
()

«простенько, самые основы» при приеме на работу, где требуют C++, никто спрашивать не будет :)
Я бы посоветовал, бери 3-е издание Страуструпа. Скажу сразу - там 1000 страниц, но в конце каждой главы есть задачи для твоего профита.

P.S. И вообще! Ты разве еще не понял, что там(в Универе) тебя _учат учиться_??

P.P.S. А «короткие tips» ты должен был зарюхать еще когда все поголовье твоего второго курса писало задание «Интерпретатор» или что там у вас было во 2-ом семестре?..

metawishmaster ★★★★★
()
Ответ на: комментарий от metawishmaster

> И вообще! Ты разве еще не понял, что там(в Универе) тебя _учат учиться_

Пальцы широки, да? ;)
Яйца курицу не учат.

все поголовье твоего второго курса писало задание «Интерпретатор» или что там у вас было во 2-ом семестре?..


Да, надо было написать транслятор простого диалекта SQL с выполнением запросов (в течение 1-го семестра). Я задание не успел доделать, только на бумаге расписал почти весь лексический и синтаксический анализ языка - много времени у меня ушло на другую курсовую работу (по машграфу). К тому же, я писал на Си (без плюсов - они в данном задании не нужны).

Джефф Элджер «С++», есть в сети, не найдешь могу выслать.


OK. Поищу.

Выучил бы лучше питон или racket.


И его тоже буду учить. Но Питон я хоть поверхностно представляю.
А вот Си++ - потребуется долго и нудно учить, как я понял.
Предполагается работа в команде. Возможно, со временем - в большой.
Пока у нас два человека на стартапе (Python, Visual C++, GNU C++).

тебе основы (Си с классами) или Ъ-С++ с бустом и прочей нечистью ? Если второе, то читай все книги Саттера и Александреску.


Ок, посмотрю. В принципе, кое-какие основы я знаю, то есть примерно помню табличку, по которым вычисляется видимость членов класса при наследовании, могу написать friend-функцию класса, и т.п. (у меня курсовая по маш.графике в 1996 году была - анимация невыпукулых многогранников в режиме EGA 640x350x4bpp/MS DOS, программа на Си++ с расчетом яркости граней вращающихся тел).

В процессе отладки проекта - нашел багофичу (которую я бы назвал багом) в компиляторе Borland C++ 3.1/MS DOS. ))

pacify ★★★★★
() автор топика
Ответ на: комментарий от mv

> где вы увидели всю мощь в языке, где даже мультиметодов нет?

где вы увидели всю мощь в языке, где даже <подставь_любой_buzzword> нет? // FIXED

Конкретно за multimethods: зачем нужны мультиметоды (и, как следствие, ослабляющая язык динамика), если существует кошерный паттерн Visitor, работающий везде?

anonymous
()

Как научиться "расово чистой теории относительности"?

Сразу скажу, что ТО я знаю в рамках нашего университетского годового курса (2-й курс ф-та физфака), то есть, по-сути - только СТО + расширения.
Никакой гравитации, кривизны пространства-времени и прочего практически не использовал ни разу.
Однако, хочу научиться «расово чистой ТО».
Что посоветуете из коротких tips в стиле: преобразование Лоренца делается так?
Тейлора/Уилера и тому подобной нечисти я читать пока не хочу, времени нету. Читал лет 5 назад Тейлора по основам ОТО (книжка 200-300 страниц), даже конспектировал. Потом надоело. Нет профита.
Мне нужно что-нибудь простенькое, самые основы.

anonymous
()

> Что посоветуете из коротких tips в стиле: преобразование Лоренца делается так?

Да знаю я примерно эту вашу ТО. Ерундой занимаетесь. :)

А если серьезно - мне надо немного вспомнить университетский курс по этим tips.
Например, мне очень нравятся посты на stackoverflow.com ... собрать бы их в единый целостный документ ...

P.S. Студент, это ты? :)

pacify ★★★★★
() автор топика

Не знаю как у вас на ВМиК, но на ВМК большинство групп проходят «printf() в Си++ делается так» кроме групп у одного товарища-ненавистника STL — ты у него чтоли был?

uGin
()
Ответ на: комментарий от mv

В C++ профита нет. На голом Си можно сделать более быстрый код, чем на C++, а на любом другом популярном языке можно написать код быстрее, чем на C++. И популярный язык обычно достаточно легко комбинировать с Си через ffi.

У меня браузер от толщины порвало.

Pavval ★★★★★
()
Ответ на: комментарий от uGin

> кроме групп у одного товарища-ненавистника STL — ты у него чтоли был?

Я учился в 1995-2000 годах, про STL нам не упоминали.
Учили нас женщина - Волкова (семинары) и какой-то преподаватель с их кафедры (тоже вел семинары).
На лекциях - только Unix/трансляторы.

pacify ★★★★★
() автор топика
Ответ на: комментарий от pacify

А, ну тогда более, чем логично — 14882-й стандарт плюсов с СТЛ-ем был принят в 1998-м.

uGin
()

Не знаю, было уже или нет... Для изучения $LANGUAGE необходимы следующие вещи:

1. Стандарт на язык (аннотированый). Настольная, наколенная, накроватная книжка.
2. Стандарт на язык (не аннотированный). Для общего просветления и как снотворное.
3. Много хорошего, годного кода на $LANGUAGE. Чтобы читать.
4. Модельная предметная область. С одной стороны чтобы мог охватить один человек. С другой - достаточно интересная.

Употреблять это так:

1. Выбрать случайное число от 1 до 4.
2. Занимаемся в соответствии с вышеперечисленными пунктами, пока не надоест/заснешь/сблюешь/пошлешь.
3. Выбираем случайное число ...

...

PROFIT!

Macil ★★★★★
()

Наверное надо спрашивать у расово чистой помеси китайца с еврее-негром.

Waterlaz ★★★★★
()
Ответ на: комментарий от mi_estas

В «чистом С» опустить «ретурн 0» в мейне низя :)
А так, рекомендую посмотреть в содержимое cstdio, и вопросы отпадут :)

Jetty ★★★★★
()

А поток - разве не функция операционной системы?
Си++ изучать пытался, но в итоге как писал на СИ, так и пишу. В том числе - многопоточное программирование. ;-) Возможно, на плюcах это выглядит легче и проще...

Deleted
()

> Си + классы

правильный выбор

Никаких операторов/потоков/boost и прочего практически не использовал ни разу.

и опять таки все правильно делаешь

aho
()

> printf() в Си++ делается так:...?

Не поверишь, printf().

хочу научиться «расово чистому Си++».

Страуструпа и тому подобной нечисти я читать пока не хочу, времени нету.

Ты уж определись, хочешь или не хочешь.

anonymous
()
Ответ на: комментарий от mv

>В C++ профита нет

Есть библиотеки написанные на C++ к которым нет биндингов на C. То есть единственный метод их использовать - это C++. Обратное же делается достаточно просто.

На голом Си можно сделать более быстрый код, чем на C++


А если не использовать rtti, exceptions, может быть даже виртуальные методы. И даже более: не то что не использовать, а глушить их на уровне опций компилятора. Не далеко ведь такой C++ уйдёт от C в плане производительности?
Но зато получим: эти самые библиотеки и слегка улучшенный по своим возможностям язык.

gnu-eabi
()
Ответ на: комментарий от Pavval

У меня браузер от толщины порвало.

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

mv ★★★★★
()
Ответ на: комментарий от gnu-eabi

Есть библиотеки написанные на C++ к которым нет биндингов на C. То есть единственный метод их использовать - это C++. Обратное же делается достаточно просто.

Биндинги к сишным библиотекам везде делается достаточно просто. Вывод: C++ не только не нужен, но и вреден.

mv ★★★★★
()
Ответ на: комментарий от mv

>Биндинги к сишным библиотекам везде делается достаточно просто.

Именно это я и имел ввиду. Но в то же время полно плюсовых библиотек.

Вывод: C++ не только не нужен, но и вреден.


Потому что гладиолус?

gnu-eabi
()
Ответ на: комментарий от gnu-eabi

> Потому что гладиолус?

mv, видимо, решил занять место другого «известного» лиспера - love5an, которого тут забанили; вообще ругать С++ для фанатика/сектанта CL - это святая обязанность, и не надо искать тут логики, для них нормально ругать С++ и писать супер-пупер байндинги к нему же, или использовать тот же самый С++ самим

aho
()
Ответ на: комментарий от mv

> Кто тут в помещении секты на C++ пишет? o_O

не знаю как сейчас, но раньше ты же и писал, а сейчас твоим словам веры нет - т.к. сектант

aho
()
Ответ на: комментарий от aho

не знаю как сейчас, но раньше ты же и писал, а сейчас твоим словам веры нет - т.к. сектант

Так то раньше. Раньше я и в штаны какал. Но теперь я на личном опыте знаю, что какать в штаныписать на C++ - плохо.

mv ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.