М.Двач / Программирование

Этого треда уже нет.
Это копия, сохраненная 27 сентября 2015 года.

Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.

33 Кб, 600x400

Оффициальный™ традиционный® C++ тред #3 21 Июл, 00:21 #518004 В конец треда | Веб

Над топью asm'а, байтами смердящей,
Возвысился крестов угрюмый вал,
Отпором быдлу яростным грозящий.

И тот, кто вел меня, ввысь указал:
"Взгляни: взвились, узрев тень говнокода,
Три фурии, которых Он призвал.

Инкапсуляция затмит в обитель входы,
Наследование - средняя из них -
Даст пришлецам вкусить чужого плода,

Полиморфизм поглотит суть". И он затих.

Литература:

Для нюфань:
Три классических учебника для начинающих. Все примерно одинаковой годноты, читать имеет смысл только какой-нибудь один,

который больше приглянется.
Герберт Шилдт - C++. Базовый курс (2010) - http://goo.gl/qMLAFl
Роберт Лафоре - Объектно-ориентированное программирование в C++ (2004) - http://goo.gl/QvjR6x
Стивен Прата - Язык программирования C++ (2012) - https://goo.gl/z7kA8u
Для желающих сразу начинать с Откровений Создателя - классика (может показаться суховатым):
Бьерн Страуструп - Программирование. Принципы и практика использования C++ (2009) - https://goo.gl/87qXtW

Учимся не писать говнокод:
Книги про основные подводные камни для тех, кто осилил предыдущий пункт. Следует пролистать все.
Скотт Мейерс - Эффективное использование C++ (2005) - https://goo.gl/wsDXGz
Скотт Мейерс - Наиболее эффективное использование C++ (1996) - https://goo.gl/tHa0tO
Скотт Мейерс - Effective Modern C++ (на ангельском) (2015) - https://goo.gl/uImH0J
Скотт Мейерс - Эффективное использование STL (2002) - https://goo.gl/QtS8Dc
Герб Саттер и Андрей Александреску - Стандарты программирования на языке C++ (2005) - https://goo.gl/Cpk4YR

Наиболее детальные описания языка:
Бьерн Страуструп - Язык программирования C++ (2010) - https://goo.gl/iZBDiV
Стандарт языка (на ангельском) - http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2012/n3337.pdf

Тонкости языка (для гурманов):
Андрей Александреску - Современное проектирование на C++ (2002) - https://goo.gl/e1V5BC
Герб Саттер - Решение сложных задач на C++ (2002) - https://goo.gl/iWaa6S
Герб Саттер - Новые сложные задачи на C++ (2004) - https://goo.gl/4nn512
Также для легкого чтения подойдет книжка c историей создания C++:
Бьерн Страуструп - Дизайн и эволюция C++ (1994) - https://goo.gl/FqbPwo

Отдельные аспекты:
Читать по необходимости.
Энтони Уильямс - Параллельное программирование на C++ в действии (2012) - https://goo.gl/qJfBkD
Николаи Джоссатис - C++. Стандартная библиотека (2012) - https://goo.gl/PEyiMH
Дэвид Вандевурд, Николаи Джоссатис - Шаблоны C++. Справочник разработчика (2003) - http://goo.gl/0M4NpG

Ссылки:

Годный блог, в котором все просто и понятно тян не нужны кококок борщ - http://alenacpp.blogspot.ru/
Краткие описания библиотечных функций и контейнеров - http://ru.cppreference.com/w/
Блог Герба Саттера (на ангельском) - http://herbsutter.com/
Блог Скотта Мейерса (на ангельском) - http://scottmeyers.blogspot.ru/

Памятка:

Вопросу по синтаксису идут на хуй.
Лабы идут на хуй.
"Как мне сделать Х на чистых крестах без библиотек" идут на хуй.
Все идут на хуй.
Хейтер сосет члены на пару со своей мамашей.

Тег [code] работает через жабаскрипт-костыль: https://github.com/ololoepepe/MakabaCode

Предыдущий: >>511121

Ответы: >>518187, >>519243, >>519367, >>520121, >>522409

21 Июл, 00:28 #2 #518012

Перекрестился

21 Июл, 01:06 #3 #518054

Повторяю реквест из прошлого треда: кто-нибудь видел доку/референс к плюсовым биндингам ncurses?

21 Июл, 01:24 #4 #518068

Кто-нибудь пробовал biicode? И вообще кто-нибудь что-нибудь может рассказать о менеджерах зависимостей под C++? Не все же ручками поддерживать.

Ответы: >>518070

21 Июл, 01:28 #5 #518070

>>518068
Cpm.
Biicode платный вроде даже для использования, не говоря уж по хостинг, так что не взлетит.

Ответы: >>518127

21 Июл, 09:10 #6 #518127

>>518070
Да не, он опенсурсный. Там есть какая-то платная поддержка, но обычный репозиторий просто доступен + можно свои серваки поднимать.
Я чего интересуюсь, хочу для личного проекта в плюсы вкатиться, а если вкатываться, то лучше это по-умному сделать и облегчить себе страдания.

21 Июл, 09:24 #7 #518134

>>517661

На счет переворота строки. Задумался сегодня утром над этой задачкой. И вот что надумал. Поясните прошаренные крестогоспода, верно ли такое решение? Пробелы не считает, размер строки не динамический; но ведь это и не обязательно?
я только учусь. сам в смысле, а не в вузике

char St[20] = {0};
cout << "Vvedite stroku" << "\n";
cin >> St;
for (int i = strlen(St)-1; i >= 0; i--)
cout << St;
cout << "\n" << "END";

Ответы: >>518521, >>519714

21 Июл, 09:38 #8 #518142

Народ, сори что здесь задаю, хочу услышать вас а не похапистов и питонеров. Реально ли без побочных эффектов начать учиться программировать с крестов? Или реально нужно начинать с чего-то скриптового? Просто меня как-то не сильно тянет в веб, хочется либо C либо C++ но второй предпочтительней, ибо даёт понятие о классах. Да, школота.

Ответы: >>518146, >>518152, >>518259, >>518360

sage 21 Июл, 09:41 #9 #518146

>>518142
Реальнее некуда. Но лучше начни с C. Я тоже сейчас пытаюсь кресты изучать, но без С чувствую огромный пробел в фундаментальных знаниях.

Ответы: >>518532

21 Июл, 09:48 #10 #518152

>>518142
Реально, тем более если школьник - время то есть, если пойдешь в универ на прогера то все равно крестами ебать будут. Кресты это не совсем выгодно по времени, и работу ньюфагу тяжело найти. Но если есть желание именно крестами занятся то можно, в крайнем случае потом перекатишся в что-то другое. Если ты действительно выучишь язык то лишним это не будет.

sage 21 Июл, 10:34 #11 #518187

>>518004
>Годный блог, в котором все просто и понятно
>http://alenacpp.blogspot.ru/
Да пошёл ты нахуй, блядь, со своей говнокодершей.

>>517072
>Он не позволяет на строку вверх подняться.
Такс-так-такс, а что тут у нас? Классика-классика-классика. Нельзя в <iostream> на строку вверх подняться, это тонкости реализации конкретной консольки, иостриму про неё откуда знать, он чары петушит.

Ответы: >>518251, >>518256, >>518270, >>518533

21 Июл, 12:17 #12 #518251

>>518187
> Да пошёл ты нахуй, блядь, со своей говнокодершей.
Хуебляди бомбит от того, что тян тоже умеют писать код?

Ответы: >>518253, >>518340

21 Июл, 12:23 #13 #518253

>>518251
>тян тоже умеют писать код
Писать код умеют, программировать - нет.

Ответы: >>518257, >>518267

sage 21 Июл, 12:25 #14 #518256

>>518187
Борщехлебу-кукаретику порвало от того, что можно объяснить что-то в двух словах без матиши. "Как же так, нипарядак! Слишкма проста! Былла! Пок-пок-пок!"

Ответы: >>518265, >>518340

sage 21 Июл, 12:27 #15 #518257

>>518253
Программируют стиральные машины, а разработчик пишет код. Бывают еще такие, кто код не пишет, а дрочит факториалы, кушая борщ. Но они тоже не программисты.

Batya 21 Июл, 12:28 #16 #518259

>>518142
Сам школьник, учу кресты. Ибо паскаль школьный уж больно всратый, а С от него не сильно ушел.

21 Июл, 12:35 #17 #518265

>>518256
Просто ты мозгом мертв, быдло. Умри.

Ответы: >>518278

21 Июл, 12:37 #18 #518267

>>518253
Гнилозубая хуемразь забыла, кто был первым программистом?

Ответы: >>518281

21 Июл, 12:40 #19 #518270

>>518187
>http://alenacpp.blogspot.ru/
Смотрите, что эта шлюха читает:
https://terrytao.wordpress.com/2015/07/20/a-nonstandard-analysis-proof-of-szemeredis-theorem/

Интересно, она там хоть что-нибудь понимает, или она пускает пыль в глаза быдлу, которое не может оценить сложность того, чем занимается Теренс Тао?

sage 21 Июл, 12:44 #20 #518278

>>518265
И тут ты такой кидаешь свой гитхаб или пуф места работы с должностью, или тихо причмокиваешь писюном.

Ответы: >>518279

sage 21 Июл, 12:44 #21 #518279

>>518278
>пруф

21 Июл, 12:44 #22 #518280

>>518273
Проиграла с мамкиного шовиниста.
Если ты считаешь себя себя лучше Алены, то почему не работаешь в Micosoft?

Ответы: >>518289, >>518340

sage 21 Июл, 12:45 #23 #518281

>>518267
Адам. Потом его унаследовала тян через функцию friendzone rebro(Adam&)=1;

sage 21 Июл, 12:45 #24 #518282

>>518273
"Все мужики козлы, все бабы дуры." Стереотипное быдло пытается косить под илитку.

sage 21 Июл, 12:48 #25 #518288

>>518285
Маня, ты уже все штаны обосрал со своей "аргументацией", прекрати, маме же стирать потом.

sage 21 Июл, 12:49 #26 #518289

>>518280
Оп треда - тян?
съебываюсь отсюда быстрорешительно

Ответы: >>518293

21 Июл, 12:50 #27 #518290

>>518285
Лучше быть няшной проприетарной госпожой, чем обоссаным вонючим гнилозубым спермобаком, которому даже проститутка не даст. Остается только сексоваться со своей рукой и линуксом.

21 Июл, 12:51 #28 #518293

>>518289
Нет, просто мимо проходила из /dev, зашла поржать над убогими.

sage 21 Июл, 12:52 #29 #518297

>>518291
Не обобщай, но тян-кодер это что то из области пасхальных зайчиков.

sage 21 Июл, 12:53 #30 #518299

Кому то припеклоу...

21 Июл, 12:54 #31 #518302

Продолжай. Рада, что тебе бомбит, хуястый.

sage 21 Июл, 12:56 #32 #518308

>>518306
Да у тебя жи стековерфлоу

sage 21 Июл, 13:11 #33 #518335

Мб харош уже?

sage 21 Июл, 13:18 #34 #518340

>>518251
Уж не знаю, кто там тебя наотвечал вместо меня, но мне бомбит не от того, что она female, а от решительного воскладывания хуйца на стандарт языка, причём не единократно замеченного. И я устал писать об этом в каждом треде, что её обоссывает собственная френд-лента и т.д.

Да, чтобы добить твою "аргументацию", у меня есть знакомая, которая давала мне советы по кодингу (Почему? Потому что я сам у неё спроси.). Ну так вот, её советы со стандартами кодинга совместимы со стандартом языка на 100%, а твоя Алёна-шлюха нет.

>>518280
>Если ты считаешь себя себя лучше Алены, то почему не работаешь в Micosoft?
Пиздец, нахуя я на тебя время тратил вообще, бездарное животное? Пиздуй из раздела обратно в /fem , потому что с таким типом аргументации даже в /dev тебя обоссут.

>>518256
Я процедурный дристальшик с пунктиком на кросс-платформенности, мимо.

21 Июл, 13:31 #35 #518350

>>518338
> вокруг полно малообеспеченных, нецелеустремленных и некрасивых мужчин, которые не пользуются успехом у женщин
Но ведь сосачеры (и ты тоже) как раз такими и являются. И в первую очередь программистишки.
Алсо, чисто для секса (не для семьи) какая разница, девственница или нет? Девственница даже хуже, ее труднее затащить в постель.
Сам встречаюсь с РСП, мне норм (жениться не собираюсь, конечно).

21 Июл, 13:42 #36 #518359

Сап анонасы-анонасики. Вопрос о массивах объектов, которые не имеют конструктора по умолчанию. Короче, хуй ты их задашь, только массивом указателей.

Если понаделать этих дефолтный конструкторов, задать массив, нормой ли является тупорылое присвоение методам классов значений? До этого они передавались в конструктор. Это выглядит убого, на мой взгляд, но как-то по-другому не выходит. Вариант с инициализацией массива
Сl cl[2]
A::A():cl[0](1,2),cl[1](2,3){}
в конструкторе класса, содержащий массив объектов, не работает нихуя. Все способы, которые видел в инете, являются каким-то костылями.

21 Июл, 13:52 #37 #518360

>>518142
>Реально ли без побочных эффектов начать учиться программировать с крестов?
Подвис.

Ответы: >>518361

21 Июл, 13:52 #38 #518361

>>518360
Мимо-борщехлеб

sage 21 Июл, 14:08 #39 #518366

Начальник! Ебни порвашку.

21 Июл, 16:10 #40 #518466

Бля, что с тредом? Ну як же тааак?

21 Июл, 16:18 #41 #518473

>>518467
Причем виновата не баба, а долбоёбы у которых синдром тян не нужны.

64 Кб, 589x604

21 Июл, 16:33 #42 #518487

Выручайте господа, изучаю c++. Была задачка по вводу 10 значений в массив значений short, и в случае если в массив вводится символ, а не цифра, попросить о повторном вводе числа. Пока, что ввод повторно числа не сделал, хотел простое прерывание ввода чисел сделать, если вводится число. Но как только ввожу число, все крашится с ошибкой:
Программа "[178944] test.exe: Машинный код" завершилась с кодом 3 (0x3).
Гуглил, говорят, что ошибка потока ввода.
Где-то говорили, что "код русской буквы не пренадлежит интервалу от -1 до 255" Но крашится, даже если я ввожу английские или русские литеры.

[code]

#include <iostream>
#include <string>
#include <conio.h>
#include <clocale>
#include <cctype>

using namespace std;

int main()
{
\tint number = new int;

\tnumber = 10;

\tdouble _pojertvovaniya = new double[number];

\tfor (int i = 0; i < 10; i++)
\t{

\t\tcin >> (_pojertvovaniya + i); //можно как _pojertvovaniya
\t\tif (!isalpha((_pojertvovaniya + i))) //Проверка, а буква ли это?
\t\t\tcontinue;
\t\telse cin.clear(); break;
\t}

\tfor (int i = 0; i < 10; i++)

\t{
\t\tcout << (_pojertvovaniya + i);
\t\tif (!isalpha((_pojertvovaniya + i)))
\t\t\tcontinue;
\t\telse cin.clear(); break;
\t}

\tdelete number;
\tdelete[] _pojertvovaniya;

\tsystem("pause");
\treturn 0;
}
[/code]

Скажите, где копать, в чем ошибка.

Ответы: >>518499, >>518516

21 Июл, 16:48 #43 #518499

>>518487
скопируй на pastebin.com

Ответы: >>518516

21 Июл, 16:57 #44 #518506

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

21 Июл, 17:03 #45 #518516

>>518499
>>518487
http://pastebin.com/A5Y6LuSG

Ответы: >>518525

21 Июл, 17:09 #46 #518521

>>518134
Бампусики вопросу

Ответы: >>518709, >>518717, >>518899

21 Июл, 17:13 #47 #518525

>>518516
1. Ты забыл фигурные скобки и break у тебя выполняется всегда. Вообще пиши всегда if(){}else{}, и никогда if()...;. 2. ты записываешь вывод cin в double а потом проверяешь через isalpha - так это не работает. тебе нужно записать вывод cin в string (или char[]) и тестить строку, и если atof(..) срабатывает, то сохранять в массив.

Ответы: >>518551

21 Июл, 17:26 #48 #518532

>>518146
Но ведь С++ это С и ООП. Если ты начинаешь С++ по книженциям и с самого начала, то ты будешь понимать все и без знания С.

Ответы: >>518560, >>518589

21 Июл, 17:28 #49 #518533

>>518187
Няш, ну я же уже отвечал тебе в одном из предыдущих тредов. Лена не идеальна, но лично я во времена ньюфажества нашел у нее в блоге много полезного, причем потратил на это немного времени из-за краткости статей. Более того, половина ее статей являются дословным переводами Саттера и других гуру, к которым претензий вообще никаких. Так что, я по-прежнему считаю, что ссылка на подобный блог в шапке должна быть. Если бомбит конкретно от Лены, предложи что-то лучше условия: на русском и кратко, чтобы был не учебник под маской блога, я с удовольствием поменяю тогда. Но просто удалять без замены и намеренно обеднять шапку только чтобы у кого-то не бомбило это не дело, верно же?
мимооп

Ответы: >>518719

21 Июл, 17:58 #50 #518551

>>518525
1. Буду писать, как ты сказал.
2. Да я идиот, надо было в начале просто попробовать ввести в double массив значение типа char и убедится, что получается дребедень.
string не хочу пока, что использовать.
Почему я пытался ввести в массив double значение типа char?
Меня просто ввел в заблуждение код, который позволял проверять, вводится ли символ вместо double.
Вот этот код.
http://pastebin.com/tsXFkffc
Я так понимаю, что моя проблема в том, что я не до конца понимаю, как работает поток ввода cin.
cin это метод класса istream ?

Ответы: >>518625

21 Июл, 18:05 #51 #518560

>>518532
C++ это не надмножество C, так то. Некоторые детали у них различаются, обратной совместимости нет.

Ответы: >>518684, >>518990

21 Июл, 18:40 #52 #518589

>>518532
> Но ведь С++ это С и ООП
Как там в 80-х?

Ответы: >>518684

21 Июл, 19:32 #53 #518625

>>518551
cin - это экземляр класса. Какого - не помню. А работает он через перегрузку оператора >>. Блин, я не знаю, как объяснять кресты с нуля.

Ответы: >>518636, >>518721

21 Июл, 19:47 #54 #518636

>>518625
>я не знаю, как объяснять кресты с нуля.
Не стоит. Я прочту и разберусь сам.
Спасибо за предыдущие разъяснения.

sage 21 Июл, 20:46 #55 #518684

>>518589
>>518560
А разве нет, почаны? Неужели компилятор не закомпилит сишный код в формате cpp?

Ответы: >>518686, >>518714

21 Июл, 20:47 #56 #518686

>>518684
Сорян, в сажу по дороге вступил.

21 Июл, 21:02 #57 #518702

>почаны
>Сорян

21 Июл, 21:12 #58 #518709

>>518521
А в чём собственно вопрос? И где пастабин?

И... почему нельзя сделать это через указатель?

Ответы: >>518996

21 Июл, 21:19 #59 #518714

>>518684
'a' в C будет int, а в C++ char. В C можно вызывать main явно, а в C++ нельзя. Ну и в таком ключе все.

21 Июл, 21:20 #60 #518715

удалил этого полуёбка

--мм

Ответы: >>518716

21 Июл, 21:22 #61 #518716

>>518715
Спасибо, командир. Добра тебе.

sage 21 Июл, 21:23 #62 #518717

>>518521
Я уже второй тред не могу понять, чё ты вообще за говнокод пихаешь. В твоём фиксе нихуя нет '\0', чё ты вообще от нас хочешь-то блядь.

21 Июл, 21:28 #63 #518718

Товарищу, который постит переворот строки: велосипеды это конечно здорово поначалу, но реалии таковы, что использовать библиотечный std::reverse (std::begin (St), std::end (St)) будет заведомо быстрее и читабельнее, чем все, что ты напишешь. Такие дела.

sage 21 Июл, 21:30 #64 #518719

>>518533
А обязательно на русском? Если да, то
>Программирование. Принципы и практика использования C++

хотя сто лет в обед вышла вторая версия, которую никто ещё не перевёл с английского
>Stroustrup_Principles_and_Practice_Using_C++_2ed_2014

P.S. Уж не думал, что буду рекламировать Страуструпа, но если вы тут Алёне поклоняетесь, то Страуструп просто Бог для новичков.

Ответы: >>518832

sage 21 Июл, 21:31 #65 #518721

>>518625
Всё правильно ты ему объясняешь, проще и не объяснишь. Он поймёт, когда напишет свою первую функцию, использую объект типа istream по ссылке.

21 Июл, 23:19 #66 #518829

Если я использую структуру как тип, то ее лучше держать вне или в классе?

Ответы: >>518835

21 Июл, 23:28 #67 #518832

>>518719
Ну смари, мне-то без разницы, на каком языке. Но мы же говорим про ньюфагов, так что, думаю, тут что-то на ангельском использовать нельзя. Потом, книжки (и страуструпова в том числе) и так есть в шапке, но там же многобукаф и не все осилят. А нужен блог, чтобы отдельными маленькими статьями разбирались подводные камни, без синтаксиса и прочей хуйни. В идеале что-то типа HotW Саттера, который в шапке есть, но на русском.

Ответы: >>518848, >>518885

21 Июл, 23:28 #68 #518833

Const или constexpr для переменных? Какие различия?

Ответы: >>518846

21 Июл, 23:29 #69 #518835

>>518829
Любая сущность должна иметь наименьшую возможную область видимости. Если никто, кроме твоего класса, использовать структуру не должен - объявляй ее внутри класса. Если используется только твоими классами - объявляй в собственном отдельном пространстве имен. Ну ты понел.

Ответы: >>518885

21 Июл, 23:38 #70 #518846

>>518833
const можно присваивать любое значение, которое вычислится во время работы программы. constexpr должно быть известно на этапе компиляции, т.е. ты в общем случае можешь сделать constexpr int number = 1488, но не сможешь сделать constexpr Mamka tvoya_mamka = calculateMamka (). Чтобы было можно, нужно наложить на calculateMamka () дохуя ограничений, даже если она вычисляется на этапе компиляции. Правда, они ослабляются с каждым новым стандартом. В C++11 было необходимо делать тело из одного оператора return, сейчас уже их меньше, если не ошибаюсь. Ну и поддержка constexpr еще не везде полная есть.

21 Июл, 23:39 #71 #518848

>>518832
>GotW
Быстрофикс.

sage 22 Июл, 00:21 #72 #518885

>>518832
>А нужен блог, чтобы отдельными маленькими статьями разбирались подводные камни, без синтаксиса и прочей хуйни.
>без синтаксиса
Я конечно извиняюсь, но ньюфагам во многом синтаксис и нужен.

>>518835
Вот не соглашусь здесь. Если структура используется как тип и только как тип, без единого метода (кроме быть может дефолтного конструктора), то целесообразно объявить её Struct() {} даже без private public, т.е. пусть будет публичной по умолчанию. Что, жалко, что ли? Откуда ты знаешь, как ты будешь использовать её потом?

Вся вот эта мания сделать всё приватным, а потом при необходимости налепить геттеров/сеттеров и/или друзей/наследников мне непонятна. Иногда структура это просто тип, считай двумерный или более тип. Использоваться может где угодно.

Мой любимый стракт это дабл + бул.

Ответы: >>518961

0 Кб, 348x62

22 Июл, 00:49 #73 #518899

>>518521
Подсказка.

22 Июл, 01:45 #74 #518935

Может в шапку что-то на тему IDE написать? Сам не знаю что, но надеюсь вы придумаете. А я в гугол изачать вопрос.

Ответы: >>518963

22 Июл, 03:36 #75 #518961

>>518885
>Я конечно извиняюсь, но ньюфагам во многом синтаксис и нужен.
С моей скромной точки зрения, помимо написания кода на практике что, конечно, самое главное%, обучение языку складывается из изучения синтаксиса, библиотек и тому подобного и изучения "духа" языка - типовых проблем, хаков, паттернов, если угодно. В шапке первый раздел, грубо говоря, отвечает первому из этих пунктов книжки для ньюфагов, в основном, про синтаксис, если там и есть паттерны программирования, то самые простейшие, и их мало - поэтому прочтения книжек для ньюфагов недостаточно, хотя синтаксис они покрывают почти полностью%%. Второй раздел соответствует "духу", но тут проблема в том, что этих мелких деталей, которые в конечном счете определяют опыт погроммиста, очень много, в книжку они не влезают, да и формат не тот. Поэтому, например, Мейерс покрывает это только отчасти, а чтобы набирать опыт дальше, нужно кодить и решать какие-то повседневные задачи. А если просто кодить и не делать никаких выводов, то так и останешься говнокодером. Задумается ли ньюфаг после прочтения книги "C++ за 21 день", какой контейнер STL ему применить и почему? Да вряд ли, он будет хуярить везде vector и list, не задумываясь о деталях. Или какие-нибудь зубодробительные правила для выведения типов - об это энивей нужно обжечься сначала, или ты просто не поймешь, зачем вся эта скукота нужна. Ну и поэтому правильным мне кажется гуглить возникающие вопросы и смотреть, что на эту тему пишут на всяких stackoverflow, ну и в блогах, конечно. А заодно и почитывать блоги независимо, там формат как раз подходящий - небольшие, законченные статьи, каждая раскрывает свою тему. Никто не говорит, что блоги должны заменять книги, или тем более практику. Они не заменяют. Но и книги не заменяют блоги, хотя бы уже потому что блоги обновляются гораздо чаще, чем книги, а их количество больше.

22 Июл, 03:40 #76 #518963

>>518935
Хорошая идея. Я могу детально расписать за Visual Studio, если кто-нибудь запилит гайд по настройке чего-нибудь никсового для нюфань, то будет совсем здорово.

Ответы: >>519142

22 Июл, 07:57 #77 #518990

>>518560
Естественно отличаются, но можно начинать учить С++ и ты не будешь чувствовать нехватку знаний С.

22 Июл, 08:45 #78 #518996

>>518709
Вопрос такой: прокатит ли такой ответ на собеседовании? Строка вводится как "абв", выводится как "вба". Условия задания соблюдены и мое решение гораздо проще и короче, чем у >>517661 . Вот твой гребаный пейстбин http://pastebin.com/Gyav00VF

Ответы: >>519035

22 Июл, 12:47 #79 #519035

>>518996
char St[20] = {0};
cout << "Vvedite stroku" << "\n";
cin >> St;
for (int i = strlen(St); i > 0; cout << St[--i]);
cout << "\n" << "END";

Ответы: >>519040

22 Июл, 12:59 #80 #519040

>>519035
> for (int i = strlen(St); i > 0; cout << St[--i]);
У нас во дворе за такое убивают нахуй.
std::reverse(st, st + strlen(s));

Ответы: >>519055, >>519057

22 Июл, 13:44 #81 #519055

>>519040
Какой strlen, ты охуел? std::begin/std::end

Ответы: >>519512

22 Июл, 13:48 #82 #519057

>>519040
>std::reverse(st, st + strlen(s));
у нас за такую хуйню тоже нахуй убивают.
У меня за один проход по массиву выводится строка в обратной последовательности, у тебя - два прохода плюс изменение данных в памяти. Из-за таких вот мелочей потом прибегает заказчик с выпученными глазами и криком "Сука, почему у нас на продуктиве все тормозит?"

Ответы: >>519062, >>519512

22 Июл, 14:00 #83 #519062

>>519057
И ты такой делаешь быстро, заказчик доволен и не продляет договор на техподдержку продукта. Не маленький, пора бы уже знать.

22 Июл, 14:47 #84 #519078

Как передать двумерный std::array в функцию по ссылке?

22 Июл, 16:39 #85 #519130

>>519119
Как ни смешно это звучит, консольный vi.
Если хочется тёмной цветовой гаммы, см. Sublime.

22 Июл, 17:10 #86 #519142

>>518963
Не люблю так делать, но я просто предложил, а как это сделать не знаю. Мои познания в иде это что ф9 запуск программы.

Ответы: >>519281

31 Кб, 378x331

18 Кб, 329x260

22 Июл, 18:11 #87 #519176

Не понимаю смысл static_cast. Знает кто примеры где без него нельзя обойтись?

Ответы: >>519213, >>519220, >>519780

3 Кб, 500x191

22 Июл, 19:28 #88 #519213

>>519176
гугли явное и неявное приведение типов

Ответы: >>519219

16 Кб, 286x254

22 Июл, 19:46 #89 #519219

>>519213
Почитал. Что он делает понял. А зачем нет.
char ch=int(f);
char ch=static_cast<int>(f);

Это одно и тоже? В каких случаях они будут делать разное?

Ответы: >>519384, >>519777

22 Июл, 19:47 #90 #519220

>>519176
> Не понимаю смысл static_cast
Удобней искать в проекте. Тебе захотелось посмотреть где ты кастишь к инту - ищешь static_cast<int> - при других способах могут вылезти проблемы (ложные срабатывания). Ну и более заметная запись. Преимущества только в синтаксисе, никаких особых свойст у static_cast нет (по сравнению с старыми способами каста).

Ответы: >>519222

22 Июл, 19:50 #91 #519222

>>519220
Спасибо. Это и хотел узнать.

22 Июл, 20:40 #92 #519243

>>518004
Слушай, как в юзерскрипте отключить показ кода с pastebin и ideone?

Ответы: >>519282

22 Июл, 22:28 #93 #519281

>>519142
Ну и ладно, тогда распишу за VS только. Все равно большинство нюфань под виндой.

Ответы: >>519287

22 Июл, 22:31 #94 #519282

>>519243
Попробуй в .js заменить pastebin и ideone на что-то другое. Костыль уровня /pr.

22 Июл, 22:43 #95 #519287

>>519281
Эти ссылки можно добавить http://cppstudio.com/post/2650/ http://www.mintlinux.ru/blogs/ruskii-linux-mint-nastroika-obzory/obzor-i-nastroika-sredy-razrabotki-code-blocks.html

23 Июл, 04:25 #96 #519367

>>518004
Вопрос от нюфани: на каком этапе из оп-поста можно пытаться монетизировать знания и навыки полученные при прочтении книг и выполнении практических задач из них, путем устройства на работу или подфрилансить не много где-нибудь?

Ответы: >>519368, >>519371

23 Июл, 04:26 #97 #519368

>>519367
Алсо я пока только массивы в Лафоре читать закончил, но я твердо настроен выучить кресты и работать на них, пока что всю инфу схватывал не напрягаясь.

23 Июл, 04:36 #98 #519371

>>519367
После второго пункта и пары самостоятельно написанных средних проектов тысяч на пять строк, которые решают не совсем искуственные задачи какие-нибудь игры, например ты будешь твердым джуниором. Дальше просто читать книги нет особого смысла, надо начинать работать над реальными проектами уже.

Ответы: >>519539

23 Июл, 07:30 #99 #519384

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

23 Июл, 13:46 #100 #519512

>>519055
Когда std::end начал работать с char*? Длину строки он подгружает из головы пользователя с помощью libastral.so?
>>519057
Обоссал обиженку. Ты знаешь, что за буйство внутри ostream::operator<<? Никто не использует стандартные потоки для ввода-вывода, кроме авторов laba2 вроде тебя, тем более поэлементно. Иди и померяй сколкьо твой "быстрый" вариант работает. Тормозят у вас на продуктиве только девелоперы.

Ответы: >>519521

23 Июл, 14:07 #101 #519521

>>519512
std::end работает с char [] прекрасно.

Ответы: >>519524

23 Июл, 14:17 #102 #519524

>>519521
Да, прекрасно, просто замечательно
> char c[] = "123\0\0\0";
> std::cout << "strlen = " << strlen(c); // 3
> std::reverse(std::begin(c), std::end(c));
> std::cout << "strlen = " << strlen(c); // 0
Даже не знаю, в кого ты такой осёл.

Ответы: >>519564

23 Июл, 14:41 #103 #519539

>>519371
Спасибо за ответ.

23 Июл, 15:35 #104 #519564

>>519524
algorithm требуют, чтобы в строках не было терминальных символов. И это правильно, потому что строки из терминальных символов практически никогда не нужны, а их отсутствие позволяет реализовать тот же reverse проще, чем с дополнительным расчетом длины. Так что твой пример по стандарту будет UB, и ничего удивительного в том, что все ломается.

Ответы: >>519694, >>519702

23 Июл, 16:14 #105 #519589

Знающие в QT, можно ли как то изменить внешне Qsystemtrayicon::Showmessage?
И ещё, ненемного непонял http://doc.qt.io/qt-5/qsystemtrayicon.html#showMessage 3го аргумента, как его задать?

Ответы: >>519622

sage 23 Июл, 18:06 #106 #519622

>>519589
>можно ли как то изменить внешне Qsystemtrayicon::Showmessage
Только если рисовать вручную. Короче, считай что нельзя.
>как его задать
Указав через запятую после второго. В чем проблема?

Ответы: >>519626

23 Июл, 18:18 #107 #519626

>>519622
Очень жаль, людям не очень нравится обычный вид мэсэджа. :(

Я не могу понять в каком виде.
У меня есть что то типа:
trayIcon->showMessage("USER", fio);
Что дописать надо? Создать переменную:
MessageIcon icon;
и дописать:
trayIcon->showMessage("USER", fio, icon = QSystemTrayIcon::Information);
Или icon = 1?
Вместо QSystemTrayIcon::Information можно написать любой отсюда http://doc.qt.io/qt-5/qsystemtrayicon.html#MessageIcon-enum?

Ответы: >>519628

23 Июл, 18:19 #108 #519628

>>519626
http://doc.qt.io/qt-5/qsystemtrayicon.html#MessageIcon-enum знак вопроса прицепился выше.

Ответы: >>519636

sage 23 Июл, 18:30 #109 #519636

>>519628
Может, для начала тебе стоит изучить основы языка C++? Почитай учебник, выполни задания, чтоб таких вопросов не возникало. Прата вполне подойдет.

Ответы: >>519710

23 Июл, 20:38 #110 #519694

>>519564
Ты какой-то юродивый. Я там нули поставил, чтобы небе очевиднее было, что std::end предназначен для работы с массивами, а не со строками. Вот менее очевидный пример, где нули после литерала поставил компилятор, а не я сам.
> char c[] = "123";
> std::cout << "strlen = " << strlen(c); // 3
> std::reverse(std::begin(c), std::end(c));
> std::cout << "strlen = " << strlen(c); // 0
Он тоже не работает. И не будет работать. С буферами не будет работать. Со введёнными пользователем строками в эти буферы не будет работать. С литералами не будет работать. Ни с чем не будет работать. UB только у твоих папки с мамкой по пьяни было, когда он на гандоне воздух из спермоприёмника не выдавил.

Ответы: >>520047

47 Кб, 442x328

23 Июл, 20:40 #111 #519696

Смотрите на меня и смейтесь.
Буду рад, если поможете.
Есть код программы. В ней вводятся с клавиатуры две переменные. Первая это переменная типа char символ, который будет напечатан N число раз. И переменная int, то самое кол-во раз.
Все работает хорошо. Но вот есть в этом коде место, которое я понять не могу. Меня смутила объявление указателя типа char и его дальнейшая инициализация
Прилогаю код, в нем закоментировал ход моих мыслей. Если где-то я не прав, поправьте пожалуйста.

http://pastebin.com/f35Mcpbi

Ответы: >>519698, >>519702, >>519775

23 Июл, 20:50 #112 #519698

>>519696
Функция buildstr возвращает не массив а указатель на него. Пробей больше инфы про то как работают указатели и строки в C. Так ты нихуя не поймешь.

Ответы: >>519702, >>519718

23 Июл, 20:53 #113 #519702

>>519696
Присоединяюсь этому >>519698 джентльмену, массивы в плюсах это плохая штука, которая плодит долбоёбов вроде >>519564
Привыкай сразу работать с контейнерами, итераторами, указателями, референсами и почитай про сишные строки.
> while (n --> 0)
kek

Ответы: >>519718

23 Июл, 21:03 #114 #519710

>>519636
Ясно.

23 Июл, 21:11 #115 #519714

>>518134
Отличное решение. Не понимаю с чего вообще вы тут раскукаревались.

Ответы: >>519715

23 Июл, 21:19 #116 #519715

>>519714
Раскукарекался тут очевидно, ты, там толстый вброс, который выводит одну и ту же строку несколько раз.

Ответы: >>519717

33 Кб, 805x227

23 Июл, 21:24 #117 #519717

>>519715
Сам ты толстый. Просто небольшая ошибка. Нужно добавить и все будет работать.

23 Июл, 21:24 #118 #519718

>>519698
>>519702
От как жопой чувствовал, что при изучении С++ придется С учить. Ну никак не хотелось.
Да простите, это у меня уже шарики за ролики едут, после чтения книги с 9 утра.
Как даже видно из прототипа функции
char buildstr(char c, int n)
ее возвращаемое значение это указатель. Массив это указатель, адресом которого является, адрес его первого элемента.
Меня смутило объявление указателя и сразу его инициализация через возвращаемое значение функции
char ps = buildstr(ch, times);
Как я писал до этого, мне понятнее
char * ps = new char;
ps = buildstr(ch, times);
Благодарю за советы.

Ответы: >>519720, >>519724, >>519729

23 Июл, 21:27 #119 #519720

>>519718
char * buildstr(char c, int n)
быстрофик

23 Июл, 21:31 #120 #519724

>>519718
char buildstr(char c, int n)
а не
char buildstr(char c, int n)
и
char ps = buildstr(ch, times);
а не
char ps = buildstr(ch, times);
Что-то символ * потерялся.

Ответы: >>519725, >>519726

33 Кб, 805x227

23 Июл, 21:32 #121 #519725

>>519724
char buildstr(char c, int n)
а не
char buildstr(char c, int n)
и
char ps = buildstr(ch, times);
а не
char ps = buildstr(ch, times);

a не

char buildstr(char c, int n)
а не
char buildstr(char c, int n)
и
char ps = buildstr(ch, times);
а не
char ps = buildstr(ch, times);

Ответы: >>519726

23 Июл, 21:33 #122 #519726

>>519724
>>519725
Вакаба символ астериска съедает, ухожу, что бы не позорится.

23 Июл, 21:36 #123 #519729

>>519718
> Меня смутило объявление указателя и сразу его инициализация через возвращаемое значение функции
И чем смутило?

Ответы: >>519734

23 Июл, 21:45 #124 #519734

>>519729
Мне понятнее так
http://pastebin.com/bG8LaYhm

Я знал, что при объявлении массива его можно инициализировать. Но объявление
http://pastebin.com/P1jduxg5
в моем тупом мозгу ассоциировалось с разъименовывание указателя
*ps = pstr
(pstr - адрес указателя)
Просто субъективное восприятие, которое пришлось и приходится подавлять у себя в мозгу.

Ответы: >>519740, >>519907

23 Июл, 21:58 #125 #519740

>>519734
Но ведь «pstr» это тоже адресная переменная, нинада ни чего подовлять.

Ответы: >>519763, >>519768

23 Июл, 22:35 #126 #519763

>>519740
ps = pstr
ошибка:
значение типа "char " нельзя присвоить сущности типа "char"

Ответы: >>519764

23 Июл, 22:37 #127 #519764

>>519763
http://pastebin.com/mk5iWTnH
ошибка:
значение типа "char " нельзя присвоить сущности типа "char"
вакаба не ешь амперсанд, пожалуйста.

Ответы: >>519768

23 Июл, 22:44 #128 #519768

>>519740
>>519764
http://pastebin.com/mk5iWTnH
ошибка
http://pastebin.com/Uz33UEXk

Ответы: >>519771

23 Июл, 22:47 #129 #519771

>>519768
Скинь весь код программы которая выдает тебе эту ошибку.

Ответы: >>519775

23 Июл, 22:59 #130 #519775

>>519771
Мне не выдает ошибку.
Вот код.
>>519696
Там где большой комментарий. Там происходит объявление и инициализация указателя значением, возвращаемым функцией buildstr.
Мной такой синтаксис не воспринимался. Мне понятнее было
http://pastebin.com/bG8LaYhm
Думаю хватит мне флудить и уделять этому вопросу много внимания. Я уже все понял и разобрался.

Ответы: >>519785

23 Июл, 23:07 #131 #519777

>>519219
>Это одно и тоже?
Нет.

23 Июл, 23:12 #132 #519780

>>519176
> Не понимаю смысл static_cast. Знает кто примеры где без него нельзя обойтись?
Да. Прочитал ты такой в std::string проксоренную строку. Строку проксорили — там есть char-ы с любым значением, от -127 до 128 (в случае дефолтных знаковых char-ов)

И хочешь произвести частотный анализ. Используешь символы из строки как индекс в массиве и вылетаешь за границы, т.к. знаковый отрицательный char превращается в отрицательный индекс.

Тут без каста никак.

23 Июл, 23:13 #133 #519783

Вопрос местным плюсоманькам: чё это вы всё с char* пердолитесь? 21 век на дворе!

Ответы: >>519787

23 Июл, 23:15 #134 #519785

>>519775
не понимаю почему тебе так было понятнее. Ты знаешь что делает new char? если ты так напишешь у тебя в памяти будет висеть неиспользуемая и недоступная переменная

Ответы: >>519904

23 Июл, 23:16 #135 #519787

>>519783
Напиши программу для микроконтроллера на Java. Тогда поговорим.

Ответы: >>519788, >>519789

23 Июл, 23:17 #136 #519788

>>519787
При чём тут Java, я вообще не понял, ну да ладно.

Ответы: >>519798

23 Июл, 23:18 #137 #519789

>>519787
Собственно, Java придумывалась для микроконтроллеров. Для микроволновок, холодильников, стиралок etc.

Ответы: >>519798

23 Июл, 23:24 #138 #519798

>>519788
Ну не суть. Если тебе интерестно баловаться с данными. Создавать и изучать разные структуры данных и организации памяти, собственные устройства, тебе будет интересен C и C++. А если нужно обычное приложение подойдут и более простые языки.

>>519789
Только на самых ранних стадиях развития. Я говорю про сегоднящний день.

Ответы: >>519799

23 Июл, 23:26 #139 #519799

>>519798
>C и C++
Это уже сильно разные языки.

Короче, я намякивал, что пора бы уже std::string везде. И забыть про new/delete.

Ответы: >>519803

23 Июл, 23:34 #140 #519803

>>519799
>Это уже сильно разные языки.
Пока все что написано на C справедливо и для C++ я бы не назвал эти языки разными.
>>пора бы уже std::string везде
Для работы со строками конечно лучше использовать string. Как char* строки используют наверное только при обучении.
>забыть про new/delete
и как ты собираешься динамически работать с памятью?

Ответы: >>519805, >>519806

23 Июл, 23:37 #141 #519805

>>519803
>Пока все что написано на C справедливо и для C++
Допустим, вот функция
void f();
Какое число аргументов она принимает в C и какое в C++?
> и как ты собираешься динамически работать с памятью?
unique/shared_ptr или просто выделять на стеке и возвращать/передавать. Когда надо, компилятор или скопирует, или переместит значение.

23 Июл, 23:44 #142 #519806

>>519803
Здраствуйте, поступила просьба ознакомить ньюфага с RAII. Такое дело вообщем, в с++ стековые переменные удаляются по выходу из скоупа епте, а для объектов вызывается даже деструктор. Именно так работает vector, он динамический, но delete же ты для него не используешь? Или как? Ну вообщем хуяришь все объекты в смартпоинтеры и забыл про delete.

Ответы: >>519811

23 Июл, 23:56 #143 #519811

>>519806
Ну это уже более высокий уровень абстракции. Я имел в виду что для написания собственного контейнера, который будет динамически выделать память, без new/delete не обойтись. Потом конечно можно забыть про них. Но если изучать язык с нуля неплохо бы знать о них, вместо слепого использования уже готовых контейнеров.

Ответы: >>519814

24 Июл, 00:04 #144 #519814

>>519811
Будем откровенны : если ты пишешь на плюсах или там джаве или шарпах, тебя вряд ли понадобится писать свои контейнеры. Если хочешь написать либу, есть C. Си это мощь и простота работы с памятью, с++ высокоуровневый язык для гуая и прочего такого. Это ад дебажить с++ код, активно использующий работу с памятью.

24 Июл, 08:59 #145 #519904

>>519785
>Ты знаешь что делает new char?

Выделяет область памяти в куче под переменную указатель.
Затем эта переменная указатель инициализируется возвращаемым значением функции. Тот указатель (массив) что создается в функции, память под него удаляется, как только функция отработается.

Ответы: >>519907

24 Июл, 09:15 #146 #519907

>>519734
> Мне понятнее так
Нихуя у тебя не понятнее, у тебя в первом сниппете утечка памяти (если закрыть глаза на синтаксис). Подавляй у себя в мозгу интуитивное понимание языка, ты до этого ещё не дорос.
>>519904
На самом деле ты нихуя не понимаешь. Иди перечитывай учебник
> Тот указатель (массив) что создается в функции, память под него удаляется, как только функция отработается.
У тебя _очень_ плохое понимание времени жизни переменных.

Ответы: >>519910

50 Кб, 471x211

24 Июл, 09:24 #147 #519910

>>519907
> у тебя в первом сниппете утечка памяти
Да new char выделяет память, но эта память ничем не инициализируется так?
> У тебя _очень_ плохое понимание времени жизни переменных.
Не пойму то ли я жопой читаю, то ли меня наебывают.

Ответы: >>519927, >>519930, >>519995

24 Июл, 10:12 #148 #519927

>>519910
new выделяет память в куче. Неважно инициализировано она или нет. Память ты выделил, но не удалил.
>>отведенная под указатель pstr (НО НЕ ПОД САМУ СТРОКУ), освобождается
Когда ты пишешь char ps; под этот указатель выделяется память в стеке, она удалится по выходу из скоупа, но не то, на что она указывает.
Твой код равносилен этому:
char ps;
new char; // утечка
ps = buildstr(ch, times);

Ответы: >>519928, >>519934, >>520001

24 Июл, 10:13 #149 #519928

>>519927
>>char ps;
char* ps;

24 Июл, 10:16 #150 #519930

>>519910
Освобождается память, отведённая под указатель, а не под саму строку, жопой читаешь, да.

24 Июл, 10:23 #151 #519934

>>519927
Спасибо, не знал, что так можно использовать new.
И не знал, что можно объявлять указатель, без его инициализации.
Это многое объясняет.
>Освобождается память, отведённая под указатель, а не под саму строку, жопой читаешь, да
Вопрос тогда в том, как удалить память выделенную под строку?

Ответы: >>519935, >>519995

24 Июл, 10:31 #152 #519935

>>519934
когда уже нет необходимости в строке, или использовать string или смарт поинтеры.

24 Июл, 14:10 #153 #519995

>>519910
> Да new char выделяет память, но эта память ничем не инициализируется так?
Да, так и что дальше? Утечка никуда не делась.
> Не пойму то ли я жопой читаю, то ли меня наебывают.
Жопой читаешь. Посчитай на листочке, сколько памяти выделено, и сколько освобождено.
>>519934
Блядь, как ты не знал? Ты читал учебник? Многое ему объясняет. Там где есть new, там должен быть delete. Запомни простое правило.

Ответы: >>520001

24 Июл, 14:42 #154 #520001

>>519995
Я не корректно выразился.
Я не знал, что так можно выделить память под указатель, как было описано в посте >>519927
То, что память выделенную, надо отчищать при помощи delete это я знаю.
В учебнике всегда давали такой синтаксис, при выделении памяти.
Там объявляется указатель, и сразу же инициализируется выделенной памятью.
Затем память отчищается с помощью delete.
http://pastebin.com/w3gicxSN

Ответы: >>520145

24 Июл, 16:32 #155 #520047

>>519694
Оу. Вот это я обосрался. Этот джентльмен абсолютно прав, а я раньше не задумывался над этим и всегда на автомате считал, что end у c-like строк укажет на терминальный нуль и меня спасло только то, что я никогда не переворачивал c-like строки, а использовал string. Вот я хуиная голова, лол.

31 Кб, 386x365

24 Июл, 19:11 #156 #520121

>>518004
Антоши, поясните за полиморфизм. Как я могу получить доступ к длинне хуя?

Ответы: >>520130, >>520131, >>520137, >>520138, >>520178

24 Июл, 19:17 #157 #520130

>>520121
ты чё делаешь, наркоман?

```
Man pacan = new Man;
```

ну или делай
```
((Man)pacan)->
```

Ответы: >>520132, >>520136

24 Июл, 19:17 #158 #520131

>>520121
Так полиморфизм в этом и состоит что у твоего men какбы вроде и нет хуя (хотя на самом деле ечть). Объект класса Men выглядит полностью как объект класса Human (тоесть без хуя), хотя на самом деле является объектом класса Men (тоесть с хуем).

Ответы: >>520140

24 Июл, 19:18 #159 #520132

>>520130
Он спрашивает про полиморфизм, а ты ему типы советуешь поменять.

Ответы: >>520137

49 Кб, 448x615

24 Июл, 19:22 #160 #520136

>>520130
Ну хорошо. В таком случае работает. А что если мне нужно сделать массив людей? Все равно же нужен будет указатель на Human?

24 Июл, 19:22 #161 #520137

>>520132
а он точно уверен, что знает что такое полиморфизм?

>>520121
Делай виртуальный метод int my_score() у Human и

[CODE]
void draw_my_score(){
std::cout << this->my_score() << std::endl;
}
[/CODE]

У мужика делай int my_score(){return this->dlinnaHuja;}

Делай бабу, у неё не хуй, а сиськи и она переопределяет my_score как return breast_size;

Создавай в main()
[CODE]
Man male = new Man();
male->draw_my_score();
Woman female = new Woman();
female->draw_my_score();
[/CODE]

Ответы: >>520142, >>520147

24 Июл, 19:22 #162 #520138

>>520121
Никак? Потому что как Human у тебя может быть Woman, у которой параметра dlinnaHuja нет.

мимопроходил

49 Кб, 448x615

24 Июл, 19:23 #163 #520140

>>520131
Так как мне увидеть хуй?

Ответы: >>520142, >>520143, >>520144, >>520146

24 Июл, 19:23 #164 #520142

>>520140
-> >>520137

24 Июл, 19:25 #165 #520143

>>520140
полиморфизм, друг мой, это не про "а как получает методы наследников", а про "а как наследник, вызывает метод, определенный в предке, который в свою очередь вызывает метод ПЕРЕОПРЕДЕЛЁННЫЙ наследником"

Полиморфизм это доступ к переопределенным твоими наследниками методам

24 Июл, 19:25 #166 #520144

>>520140
Хуй может быть только у Man. Чтобы его увидеть ты должен Human скаставать к Man, как тебе и говорили.

24 Июл, 19:27 #167 #520145

>>520001
Не путай указатели и ссылки.

24 Июл, 19:27 #168 #520146

>>520140
Определить в Human virtual getHujOrBufera()=0; и переопределить в наследниках, возвращая соответствующее. Крайне тупой пример в любом случае.

Ответы: >>520148

63 Кб, 464x680

24 Июл, 19:28 #169 #520147

>>520137
Ну так то понятно, а есть способ сделать функцию видимой только для одного наследуемого объекта? Допустим вот с таким способом у меня баба может увидеть функцию getDlinnaHuja(), которая ей нахуй не всралсь.

Ответы: >>520151, >>520158, >>520170

24 Июл, 19:29 #170 #520148

>>520146
Бля я хочу просто getHui().

Ответы: >>520153

24 Июл, 19:30 #171 #520151

>>520147
> видимой только для одного наследуемого объекта
нет. если ты хочешь такое, ты неправильно понял всё наследование

Ответы: >>520156

24 Июл, 19:31 #172 #520153

>>520148
Если ты хочешь getHui, значит ты заранее знаешь, что у тебя лежит в массиве (мужик), а значит полиморфизм тебе не нужен.

Ответы: >>520239

24 Июл, 19:33 #173 #520156

>>520151
Короче ясно. Выходит что у всех наследуемых объектов прототипы функций должны быть идентичными?

Ответы: >>520157, >>520159

24 Июл, 19:34 #174 #520157

>>520156
лол, конечно нет

24 Июл, 19:34 #175 #520158

>>520147
И каким образом ты узнаешь кто у тебя находится в katka[1]? Скажем в товем примере это ясно, но в другом случае в katka[1] может оказатся как Man так и Woman и получится обосрамс. Ты хуйней занимаешся с такими массивами. Такое делать не рекомендуют. Если у тебя есть масив Human то работай с ними как с массивом Human.

Ответы: >>520160

24 Июл, 19:35 #176 #520159

>>520156
баба может вертеть сиськами, а мужик - вертеть хуем. Причем "Human" может не содержать этих методов

Ответы: >>520162

24 Июл, 19:36 #177 #520160

>>520158
Я пытаюсь сделать чтото вроде game of life только с разными животными. Мне нужен именно массив родительских объектов.

Ответы: >>520163, >>520173

24 Июл, 19:38 #178 #520162

>>520159
А как тогда вызвать эти функции? В случае если мы инициализируем бабу и мужика через указатель на Human.

Ответы: >>520165

24 Июл, 19:38 #179 #520163

>>520160
Чем тебе не нравится вариант с кастом?

Ответы: >>520177

24 Июл, 19:39 #180 #520165

>>520162
Никак. В этом и прикол. НИКАК. Ты не можешь обращаться к конкретным методам, не зная, что перед тобой находится. А ты не знаешь.

Ответы: >>520167, >>520171

24 Июл, 19:40 #181 #520167

>>520165
Ну на самом деле можно, добавить int tag в Human и кастить при использовании, только это настолько хуево, что пиздец.

Ответы: >>520169, >>520179

24 Июл, 19:41 #182 #520169

>>520167
это опять нарушает парадигму

24 Июл, 19:42 #183 #520170

>>520147
скажи что ты хочешь сделать, и я скажу как надо сделать правильно.
Не КАК, а ЧТО

Ответы: >>520173

63 Кб, 535x665

24 Июл, 19:43 #184 #520171

>>520165
Бля я так и не попробывал так сделать. Теперь все заебись. Спасибо за помощь.

Ответы: >>520177, >>520181

24 Июл, 19:45 #185 #520172

блядь поцаны, скажите как сделать таймер нормальный?
На форумах постоянно обсуждается SetTimer, но он не катит, т.к у меня нет хендла окна или че он там требует обязательно. А без него собсна KillTimer не работает. Пробовал выносить в отдельный поток CreateThread, но ваще какая-то хуйня выходит. Подскажите че нибудь, спасибо. (Sleep не катит, сразу говорю)

Ответы: >>520183, >>520187

24 Июл, 19:45 #186 #520173

>>520170
-> >>520160
Допустим у меня есть класс лиса который хранит количество сожранных зайцев. Но я не хочу чтобы из зайца, который зайцев не ест, у меня была доступна эта переменная.

Ответы: >>520175

24 Июл, 19:47 #187 #520175

>>520173
Делаешь в animal виртуальный метод getRabbitEatenCount(), определяешь его только в лисе. У остальных - не определяешь

Ответы: >>520176

24 Июл, 19:48 #188 #520176

>>520175
если у меня будет массив из Animal*, getRabbitEatenCount() будет виден и в зайце.

24 Июл, 19:49 #189 #520177

>>520163
-> >>520171
промахнулся

24 Июл, 19:49 #190 #520178

>>520121
Это называется downcasting. Используй dynamic_cast. Подробнее https://www.tutorialcup.com/cplusplus/upcasting-downcasting.htm

24 Июл, 19:52 #191 #520179

>>520167
>Ну на самом деле можно, добавить int tag в Human и кастить при использовании
Откуда вы берётесь, идиоты? Тег добавить, кастить при использовании. Вообще охуеть.
Есть стандартный механизм — dynamic_cast. Который проверяет что надо

24 Июл, 19:53 #192 #520181

>>520171
Не стоит использовать C-style касты в плюсах.

24 Июл, 19:58 #193 #520183

>>520172
>SetTimer, но он не катит, т.к у меня нет хендла окна
Хендл окна ненужен, можно ноль передавать.

Ответы: >>520184, >>520187

24 Июл, 19:59 #194 #520184

>>520183
я говорю, что тогда KillTimer не работает.
То есть не убивается созданный таймер, т.к без хендла не работает второй параметр, то есть id того самого таймера.

Ответы: >>520187, >>520189

24 Июл, 20:01 #195 #520187

>>520172
>>520183
>>520184
Вам std::chrono завезли, а вы в ублюдочное WinAPI лезете. Совсем поехали?

24 Июл, 20:06 #196 #520189

>>520184
> без хендла не работает второй параметр, то есть id того самого таймера.
Чёт ты гонишь.

uIDEvent [in]

Type: UINT_PTR

The timer to be destroyed. If the window handle passed to SetTimer is valid, this parameter must be the same as the nIDEvent value passed to SetTimer. If the application calls SetTimer with hWnd set to NULL, this parameter must be the timer identifier returned by SetTimer

Так или иначе, юзай std::chrono

32 Кб, 434x443

24 Июл, 20:07 #197 #520192

Поясните пжалуйста, как это вызывается конструктор без создания объекта?(после throw)
Можно так просто взять и вызвать конструктор без нихуя?(

Ответы: >>520193, >>520202, >>520204

24 Июл, 20:09 #198 #520193

>>520192
Вызов конструктора это и есть создание объекта.

24 Июл, 20:38 #199 #520202

>>520192
Сам то понял че спросил? после throw как раз и создается объект

24 Июл, 20:42 #200 #520204

>>520192
Ты имеешь в виду как вызывается конструктор без объявления переменной? Ну, типа, вот так и вызвается.

24 Июл, 23:13 #201 #520239

>>520153
Можно просто в реализации хумана для getHui возвращать nullptr, а в реализации мужика переопределить на возврат указателя на хуй. Только потом надо лепить проверки, что не nullptr, но как вариант.

Ответы: >>520272

25 Июл, 01:06 #202 #520272

>>520239
Да это все хуйня. Я хотел чтобы нигде кроме мужика эта функция вообще не была видна. Downcasting отлично подходит.

Ответы: >>520278

25 Июл, 01:21 #203 #520278

>>520272
Вот очередной программист лишился анальной девственности, введя себе в жопу динамическую дилду.

323 Кб, 1000x1536

25 Июл, 01:38 #204 #520283

Здравствуйте, господа.
Подстажите, как Qt Creator указать аргументы командной строки.

Ответы: >>520321

25 Июл, 03:42 #205 #520321

>>520283
if (argc=0) гг

Ответы: >>520322

25 Июл, 03:42 #206 #520322

>>520321
>==
Ну да похуй

25 Июл, 09:17 #207 #520374

Чуваки, я тут вчера по таймеру ныл, мол нихуя не выходит и вы мне посоветовали std::chrono. Окей, я никогда с ним не работал, поэтому начались проблемы нубские.
Хочу, допустим, сделать, чтобы таймер выполнялся в отдельном потоке, да, ну чтоб не фризило саму программу.
Делаю так, но все равно фризит:
[code lang="c++"]
int main()
{
\tstd::thread thread(timer);
\tthread.join();
}

void timer()
{
\tstd::this_thread::sleep_for(std::chrono::seconds(5));
}
[/code]

Ответы: >>520378, >>520410, >>520421

sage 25 Июл, 09:25 #208 #520378

>>520374
Читай документацию по вызываемым тобой методам.

Ответы: >>520383, >>520404

25 Июл, 09:33 #209 #520383

>>520378
хорошо, ща пойду гуглить.
А то, что я написал это совсем полнейший бред?

17 Кб, 701x180

25 Июл, 11:06 #210 #520404

>>520378
Нашел на SO такой пост (пик). В мой пост не добавлялся текст якобы какое-то слово из спам-листа.

То есть sleep_for не подходит и придется как-то изъебываться, чтобы не фризило саму программу, а текущий поток?

25 Июл, 11:14 #211 #520410

>>520374
Что ты хочешь сделать, расскажи.

Ответы: >>520411

25 Июл, 11:17 #212 #520411

>>520410
Говорю, чтобы не фризило всю программу, а текущий поток. Или от дальнейших действий зависит реализация таймера?

Ответы: >>520413

25 Июл, 11:18 #213 #520413

>>520411
Опиши задачу, а не способы, которые ты ищешь.

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

Ответы: >>520415

25 Июл, 11:22 #214 #520415

>>520413
да хотябы самое элементарное, чтобы по истечению таймера выводило в консоль/на экран сообщение, вооот. Мол прошло столько времени.

Ответы: >>520418, >>520419, >>520421

25 Июл, 11:24 #215 #520418

>>520415
http://stackoverflow.com/a/14665230

Ответы: >>520421

25 Июл, 11:24 #216 #520419

>>520415
офк понятно, что можно и с зависанием основного окна, но это не круто, хотелось бы научиться по-нормальному делать.

25 Июл, 11:26 #217 #520421

>>520415
>>520418
Ну или просто вызови .detach() вместо .join() тут: >>520374

14 Кб, 472x315

25 Июл, 14:08 #218 #520527

Правильно ли я понимаю, что здесь класс MainWindow наследуется от QMainWindow, но тогда вопрос - что такое выделено красным?

Ответы: >>520530, >>520531, >>520532, >>520537

25 Июл, 14:11 #219 #520530

>>520527
Создаётся новый объект типа UI::MainWIndow и присваивается указателю ui

Ответы: >>520531, >>520537

25 Июл, 14:12 #220 #520531

>>520527
>>520530
См. этот http://stackoverflow.com/q/2785612 вопрос и все дубликаты

Ответы: >>520537

25 Июл, 14:13 #221 #520532

>>520527
Вот подробнее
http://www.informit.com/guides/content.aspx?g=cplusplus&seqNum=172

Ответы: >>520537

25 Июл, 14:24 #222 #520537

>>520527
>>520530
>>520532
>>520531
Ого!
Значит тут происходит инициализация поля ui в классе MainWindow ДО вызова конструктора MainWindow. Верно?

Ответы: >>520538

25 Июл, 14:25 #223 #520538

>>520537
Не до вызова конструктора, а до выполнения тела конструктора.

25 Июл, 23:25 #224 #520839

тест

25 Июл, 23:30 #225 #520840

Мне кажется у меня психологические проблемы, мне страшно начинать кодить.

Ответы: >>520841

25 Июл, 23:31 #226 #520841

>>520840
Ты работаешь кодером? Учишься (официально) на кодера?

Ответы: >>520842

25 Июл, 23:33 #227 #520842

>>520841
Сам обучаюсь.

Ответы: >>520843

25 Июл, 23:35 #228 #520843

>>520842
Может тебе просто неинтересно.

Ответы: >>520844

25 Июл, 23:39 #229 #520844

>>520843
Интересно, но, почему-то, откладываю на потом, думаю что ничего не смогу, что я хуйло и так далее.

Ответы: >>520845

25 Июл, 23:40 #230 #520845

>>520844
К психологу сходи я серьёзно

Ответы: >>520846

25 Июл, 23:41 #231 #520846

>>520845
Но зачем?

Ответы: >>520847

25 Июл, 23:43 #232 #520847

>>520846
> я хуйло

Ответы: >>520848

25 Июл, 23:44 #233 #520848

>>520847
Ладно, завтра попробую целый день уделить крестам.

Ответы: >>520849

25 Июл, 23:49 #234 #520849

>>520848
Будешь чувствовать себя лутше?

Ответы: >>520852

25 Июл, 23:52 #235 #520852

>>520849
В смысле? Попробую кодить на С++, а самооценка у меня перманентно плохая.

26 Июл, 13:50 #236 #520978

Странно, вроде популярный и крутой язык, а в треде перекати поле.

Ответы: >>520980, >>521030

106 Кб, 300x300

26 Июл, 13:52 #237 #520980

>>520978
> популярный и крутой язык

Ответы: >>520981

26 Июл, 13:53 #238 #520981

>>520980
Я что, его зря начал учить?

Ответы: >>521007

26 Июл, 14:28 #239 #521007

>>520981
скорее всего да, С++ потихоньку перекатывается в специфичные области, где для нормальной работы требуется знания этих областей: сети, математика, электроника, телеком и тд.

Ответы: >>521013

26 Июл, 14:53 #240 #521013

>>521007
А разработка игр?
Мне везде пишут что для этого надо С++ учить.

Ответы: >>521022

26 Июл, 15:31 #241 #521022

>>521013
а ну еще это таки да. Ну все равно специфичная область.

Ответы: >>521023

26 Июл, 15:32 #242 #521023

>>521022
А ну ок, продолжу читать Страуступа дальше вступления.
Хочу написать свою игру, у меня тонна идей.

Ответы: >>521025, >>521056, >>521057

26 Июл, 15:34 #243 #521025

>>521023
А юнити не рассматривал?

Ответы: >>521026

26 Июл, 15:35 #244 #521026

>>521025
Там же C#?
Да и у меня не в графике суть.

26 Июл, 16:03 #245 #521030

>>520978
Заморочек много. После Java выглядит дико.

Ответы: >>521056

26 Июл, 16:47 #246 #521056

>>521023
На самом деле С++ относительно сложный язык и что бы качественно на нем писать надо убить кучу времени. Если у тебя просто идея которая не требует еба графики или еба вычислений, то все таки лучше делай на питоне или на джаве тут даже под андроид сможешь запилить.
>>521030
Да не пизди, нормальный язык просто у него есть своя специфика. Java это легко в изучении и трудей выстрелить в ногу, но расплачиваешься ресурсами что в 21 веке не так уж и важно чаще всего.

Ответы: >>521075

26 Июл, 16:48 #247 #521057

>>521023
не читай Страуструпа. Возьми Прату или еще кого нибудь, но только не Стауструпа.

26 Июл, 16:52 #248 #521060

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

Ответы: >>521078

26 Июл, 17:25 #249 #521075

>>521056
>но расплачиваешься ресурсами что в 21 веке не так уж и важно чаще всего.
То ли дело QT: к экзешнику на 3 мб прикладываешь либы на 40 мб.
JRE весит 28 мб установочный файл.

Ответы: >>521076

26 Июл, 17:32 #250 #521076

>>521075
ты не умеешь собирать.

Ответы: >>521081

26 Июл, 17:45 #251 #521078

>>521060
https://isocpp.org/std/the-standard

26 Июл, 17:52 #252 #521081

>>521076
Расскажи как правильно.

26 Июл, 19:10 #253 #521128

Зачем в C++ ставится амперсанд (&) здесь?
void MainWindow::onDataReceived(const QByteArray &array)

Ответы: >>521129

26 Июл, 19:11 #254 #521129

>>521128
Чтоб передавалась ссылка

Ответы: >>521133

26 Июл, 19:14 #255 #521133

>>521129
Если не будет const - смогу ли я изменить этот массив через эту ссылку?

Ответы: >>521147

sage 26 Июл, 19:38 #256 #521147

>>521133
Да.

26 Июл, 22:03 #257 #521273

поцаны, гуглил я как-то про std::thread.
Мне, например, не нужно, чтобы он(поток) постоянно что-то там выполнял, а только при вызове делал свою работу и завершался.
Вот, и хотелось бы узнать у вас, в основном все пишут, что потоки убивать не рекомендуется. А нормального ответа так и не увидел почему? Подскажите как быть.

Ответы: >>521288, >>521290

26 Июл, 22:22 #258 #521288

>>521273
потому что создание и завершение потока - относительно трудоёмкая операция, лучше иметь определённое количество запущенных потоков и вести для них очередь (или отдельные очереди) задач на выполнение - гугли по thread pool

Ответы: >>521311

sage 26 Июл, 22:25 #259 #521290

>>521273
Их дорого потом создавать, вот и всё. Просто не убивай его, пусть хуи пинает, пока снова не пригодится.

Ответы: >>521311

26 Июл, 22:40 #260 #521311

>>521288
>>521290
Окей, поцаны, а если мне, допустим, нужно будет выгрузить dll из процесса, а в этой дллке как раз создается поток, что тогда?

Ответы: >>521345

27 Июл, 00:17 #261 #521345

>>521311
Тогда убивай, а то распидорасит. Загрузка-выгрузка dll ещё дороже создания треда.

27 Июл, 11:25 #262 #521466

>>521391
MVS 12/13/15

27 Июл, 12:32 #263 #521481

Репощу с закрепленного ньюфаг треда, надеюсь, что вы меня тут не обоссыте. (совсем не умею с классами работать пока что)

[code lang="c++"]
class Token {
public:
char kind; // вид лексемы
double value; // для чисел: значение
Token(char ch) // создает объект класса Token
// из переменной типа char
:kind(ch), value(0) { }
Token(char ch, double val) // создает объект класса Token
:kind(ch), value(val) { } // из переменных типа
// char и double
};
[/code]

Получается, допустим, я делаю так:
[code lang="c++"]
Token t('+');
t('8', 15);
[/code]

Вот и выходит, что эти два объекта будут записаны? (знак плюс и число) или же произойдет перезапись. Просто я не понимаю, перевод ли такой или я просто туплю.

Ответы: >>521502

27 Июл, 13:42 #264 #521502

>>521481
> Вот и выходит, что эти два объекта будут записаны? (знак плюс и число) или же произойдет перезапись. Просто я не понимаю, перевод ли такой или я просто туплю.
Конструктор класса можно вызвать лишь один раз при создании экземпляра.

Ответы: >>521543

27 Июл, 14:05 #265 #521513

Чтобы перезапустить QThread, требуется ли создать новый объект?

Ответы: >>521534

sage 27 Июл, 14:48 #266 #521534

>>521513
Не требуется.

27 Июл, 15:00 #267 #521543

>>521502
то есть, то что я написал во второй раз это дцп?
все, спасибо, я понял.

27 Июл, 23:24 #268 #521753

>>521707
Visual studio. Rutracker

63 Кб, 420x292

28 Июл, 01:54 #269 #521827

Антоша, реанимируй свои воспоминания о WinAPI. У меня возник вопрос: при обработке события WM_PAINT есть возможность перерисовывать не целое окно, а только определенный регион. Вот, к примеру, у меня окно с кнопками, списками, текстом и т.д.. Как мне перерисовать только заданную область?

Ответы: >>521847, >>522799

28 Июл, 02:52 #270 #521847

>>521827
InvalidateRect:
https://msdn.microsoft.com/en-us/library/windows/desktop/dd145002(v=vs.85).aspx

Ответы: >>521896

28 Июл, 06:03 #271 #521863

>>521861
http://www.cs.colorado.edu/~main/bgi/dev-c++/

для bcc55 пришлось чуть хидер подправить

28 Июл, 06:12 #272 #521866

>>521865
>почему?
Потому что ты его дважды инициализируешь. В одной строчке даже.

28 Июл, 06:15 #273 #521867

>>521865
давно у меня дело было, хидеры подправь, там что типа заменить
func(int right, int top, int right, int bottom)
на
func(int left, int top, int right, int bottom)

28 Июл, 06:17 #274 #521868

>>521865
ёпта, да у тебя все на пике видно
int right=INT_MAX
замени все на
int left=INT_MAX

28 Июл, 06:27 #275 #521871

>>521870
Что тут объяснять-то? Не может в одной области видимости быть две переменных с одинаковыми именами.

28 Июл, 10:08 #276 #521896

>>521847
Эту функцию я знаю, проблема не в этом, а в том, как перерисовывать. Вот как перерисовать половину буквы или кнопки?

28 Июл, 15:26 #277 #522073

поцаны, насколько адекватно было бы начинать читать перевод Майерса 2000-х годов, там же по сути информация различаться будет сильно от оригинала (2015 г.), так ведь? Подскажите просто, читать ли перевод или же превозмогать и пытаться понимать инглиш версию?

Ответы: >>522076, >>522080

28 Июл, 15:32 #278 #522076

>>522073
> превозмогать и пытаться понимать инглиш версию?
Думать нечего, плюсы 1990-х и плюсы 2010-х это два разных языка с тем же названием

28 Июл, 15:36 #279 #522080

>>522073
Язык довольно сильно поменялся с тех пор, сразу новую версию будет лучше. В принципе можно прочитать старую а потом отдельно про новые фичи, но зачем? Хочешь быть программистом (не на 1c/php) - умей свободно читать технический английский. Без него ты говно ненужное.

28 Июл, 21:01 #280 #522318

На чем пилить мокрые письки под сперму, какие фреймворки использовать? MFC - для этого предназначено?

Ответы: >>522323, >>522329

28 Июл, 21:03 #281 #522323

>>522318
что именно нужно зделать?

28 Июл, 21:07 #282 #522329

>>522318
Для этого, но писать на нем - то еще удовольствие, да и говно мамонта. Юзай либо Qt (если хочется стильно, модно, не пугает порог вхождения), либо какие-нибудь wxWidgets (если надо попроще и без лишних заебок).

Ответы: >>522331

28 Июл, 21:10 #283 #522331

>>522329
не получится стильно модно на Qt - все приложения на Qt выглядят как говно (кроме приложений типа 2Gis, где допустим полностью нестандартный UI)

Ответы: >>522341

28 Июл, 21:17 #284 #522341

>>522331
Какие-то у тебя странные приложения, у меня все норм выглядит.
Ну и вообще, если задача несложная - лучшим вариантом может быть выучить шарп. Раз уже знаешь плюсы, начать клепать формочки там можно буквально за пару дней. Ты не подумай, я не фанат шарпа, но более простого и без сюрпризов формошлепства пока не видел.

Ответы: >>522344

28 Июл, 21:20 #285 #522344

>>522341
>у меня все норм выглядит.
хоть одно приложение в пример приведи

Ответы: >>522360

28 Июл, 21:30 #286 #522360

>>522344
Если верить википедии, из того, что я использовал за последние пару лет, Qt Creator, Octave, KeePass, VirtualBox и клиент близзардовский юзают Qt.
Никакого недовольства внешним видом этих программ я не испытывал. Хотя мне обычно в принципе похуй, если не совсем как говно выглядит, это да.

Ответы: >>522367

28 Июл, 21:41 #287 #522367

>>522360
ясно всё с твоим вкусом... у всех этих программ интерфейс выглядит так же парашно, как у какого-нибудь LibreOffice

Ответы: >>522368, >>522481

28 Июл, 21:44 #288 #522368

>>522367
Да это даже не дело вкуса, просто насрать. Шрифты читаются, интерфейс более-менее понятный, кислотных цветов нет, лейблы за границы окна не вылезают - значит все норм.

116 Кб, 906x675

28 Июл, 23:03 #289 #522409

>>518004
Я сейчас ебанусь. Что за дерьмо мне возвращается вместо моего инта? И каждый раз разное.

Ответы: >>522414, >>522431, >>522435

28 Июл, 23:10 #290 #522414

>>522409
Преобразуй инт к инту.

Ответы: >>522416

28 Июл, 23:11 #291 #522416

>>522414
return (int)b; так?
Ничего не изменилось.

Ответы: >>522417

28 Июл, 23:12 #292 #522417

>>522416
так только в cout

Ответы: >>522420

28 Июл, 23:12 #293 #522419

Может изза рекурсии?

28 Июл, 23:13 #294 #522420

>>522417
>cout << (int)result << " <- returned b =/" << endl;
Тоже самое.

Ответы: >>522432

28 Июл, 23:17 #295 #522423

>>521391
g++ 5.2, scan-build, ctags, vim, cmake — мой IDE.

Ответы: >>522876

28 Июл, 23:28 #296 #522431

>>522409
Пляши от последнего присваивания b. Хз че добавить.

Ответы: >>522434

28 Июл, 23:29 #297 #522432

>>522420
Погугли состояния потока. тогда. Поставь так чтобы цифры как цифры выводились.

Ответы: >>522434

28 Июл, 23:32 #298 #522434

>>522431
>>522432
Я походу допер. Окончательный результат у меня возвращается гдето в дебрях рекурсии. А функция которая была вызвана первой вообще по сути не имеет вывода, сейчас буду ковырять.

28 Июл, 23:39 #299 #522435

>>522409
Все. Разобрался. Нужно было в конце не просто рекурсивно вызывать функцию но и сразу возвращять всю эту хуйню.
>return calculate(expr);

46 Кб, 325x420

29 Июл, 01:22 #300 #522481

>>522367
Внешний вид интерфейса программы в первую очередь зависит от того, кто его проектирует и делает, а не от того, какая библиотека для этого используется, исключая, конечно, всякие крайние случаи. Плюс надо, чтоб он не тормозил.
Были времена, когда все юзали или WinAPI или MFC, а программы выходили как с хорошим интерфейсом, так и с говеным.
А раз ты такой эстет, то поведай нам интерфейс каких программ ты считаешь очень хорошим.

Ответы: >>522550, >>523464

29 Июл, 07:48 #301 #522535

Какой компилятор для c/с++ стабильнее всего работает с NetBeans?

Ответы: >>522551

29 Июл, 08:59 #302 #522550

>>522481
я имел в виду нативный интерфейс и только
посмотри на microsoft office, visual studio и т.п. - насколько они органичнее смотрятся в системе, чем говноподелия на qt

Ответы: >>522564

29 Июл, 09:00 #303 #522551

>>522535
он с чем-то кроме gcc умеет работать?

sage 29 Июл, 09:47 #304 #522564

>>522550
Хорошая попытка, спермоклоун.

Ответы: >>522584

28 Кб, 565x375

29 Июл, 11:16 #305 #522584

>>522564
А - аргументация

Ответы: >>522593

sage 29 Июл, 11:45 #306 #522593

>>522584
Какая тебе еще нужна аргументация кроме твоей некомпетентности? Qt уже давно может в нативный look and feel, внутри него используется (кто бы мог подумать?!) винапи.

Ответы: >>523142, >>523464

29 Июл, 14:58 #307 #522799

>>521827
> Как мне перерисовать только заданную область?
http://stackoverflow.com/a/1781030 says:
> Call GetUpdateRect() to get a rectangle that bounds the region to be updated. This information is also included in the PAINTSTRUCT (as the rcPaint field) passed to BeginPaint()

MSDN says:
> The BeginPaint function automatically sets the clipping region of the device context to exclude any area outside the update region.

Берёшь и перерисовываешь. Всё, что не попадёт в рект, отбросится.

34 Кб, 587x347

29 Июл, 16:45 #308 #522876

>>522423
Максимум прыщепетух
Ну CMAKE ещё шло-брело-ехало

Ответы: >>522884

29 Июл, 17:12 #309 #522884

>>522876
Неосилятора порвало.
Съеби со своим батхёртом в /s/

Ответы: >>522954

189 Кб, 358x480

29 Июл, 19:09 #310 #522954

>>522884
Ну давай, разъясни мне преимущества обоссанного g++ в сравнении с icpc, обоссаного vim в сравнении со студией/clion
Кукареку через 3... 2... 1...

Ответы: >>523072, >>523146

29 Июл, 22:32 #311 #523072

>>522954
>>обоссаного vim в сравнении со студией/clion
Ты хотел сказать божественного vim + grep + find. Такое чувство, что на плюсах писать не умеешь, эти хуилы не могут нормально шаблоны индексировать. А без этого vim + ctags + egrep + find хватает более чем. А учитывая, что студия ещё и не всегда всю иерархию вызовов показывает...
А если ещё scan-build к этому, то все IDE просто сосут хуй.
Ты сам-то чем пользуешься?

>>обоссанного g++
https://gcc.gnu.org/projects/cxx1y.html
Ну ты понел.

30 Июл, 01:17 #312 #523142

>>522593
хуле он там может? выше примеры программ приводили - говно все, то там панелька как из windows 95, то там тулбар жопный
особенно весело про спермоклоуна - я-то давно уже перекатился на мак, винда только в виртуалочке

Ответы: >>523194

30 Июл, 01:19 #313 #523146

>>522954
плиз ... не сравнивай тормозящее говноподелие от jetbrains со студией

30 Июл, 08:01 #314 #523194

>>523142
Ну и при чем тут Qt то? То, что хуесосы не могут нормальный интерфейс склепать - проблемы их, а не фреймворка. У меня нормально все получается, нативно, хоть я и не особо уделяю этому внимание.

Ответы: >>523464

30 Июл, 13:55 #315 #523311

>>518004 (OP)
Как заполнить поля static const struct по дефолту?

Ответы: >>523316

30 Июл, 14:01 #316 #523316

>>523311
[code lang="c++"]struct Yoba
{
int x;
int y;
};
static const Yoba peka = {9000, 100500};[/code]

Ответы: >>523391, >>523531

30 Июл, 17:04 #317 #523391

>>523316
Спос

61 Кб, 325x681

30 Июл, 19:20 #318 #523464

>>522593
>кроме твоей некомпетентности
>внутри него используется (кто бы мог подумать?!) винапи.
Ну охуеть теперь, а что, в программе для windows можно как-то не пользоваться WinAPI?
Вопрос в том, везде-ли он используется и на сколько грамотно, но судя по тому какие выходят программы используется он далеко не идеально.

>>523194
>Ну и при чем тут Qt то? То, что хуесосы не могут нормальный интерфейс склепать - проблемы их, а не фреймворка
Правильно, сначала напиши хуйню, а потом говори то, что только до этого >>522481
написали.

Ответы: >>523509

30 Июл, 20:23 #319 #523509

>>523464
Ты заебал, манька. Ты гонишь на инструмент, когда проблема не в нем, я тебе поясняю, что проблема в спермоклоунах, не могущих в этот инструмент. Что тебе еще не нравится? Съеби в ужасе, блять.

30 Июл, 21:22 #320 #523531

>>523316>>523423
Блжад, не могу объявить в .h файле константу-структуру, я чё и спрашивал, не работает нихуя.

30 Июл, 21:26 #321 #523534

Пагни, компилятор ругается ошибкой
||=== Build: Debug in winsock (compiler: GNU GCC Compiler) ===|
ld.exe||cannot find -lws2_32.lib|
||=== Build failed: 1 error(s), 0 warning(s) (0 minute(s), 0 second(s)) ===|

Начало кода:
#include <stdio.h>
#include <winsock2.h>
#include <windows.h>
Среда CodeBlocks. Библиотеку в настройках линкера подключил. Ну то есть lws2_32.lib эту. ЧЯДНТ?

Ответы: >>523544, >>523576, >>523669

30 Июл, 21:27 #322 #523535

Ёбаный на хуй си.

Ответы: >>523541

30 Июл, 21:42 #323 #523541

>>523535
Соси.

Ответы: >>523542

30 Июл, 21:43 #324 #523542

>>523541
Ты объясни мне как ёбаную константу объявить лучше.

Ответы: >>523551

30 Июл, 21:46 #325 #523544

>>523534

-------------- Clean: Debug in winsock (compiler: GNU GCC Compiler)---------------

Cleaned "winsock - Debug"

-------------- Build: Debug in winsock (compiler: GNU GCC Compiler)---------------

mingw32-g++.exe -Wall -fexceptions -g -c E:\termophisx\Sourses(pc)\C++\internet\winsock\main.cpp -o obj\Debug\main.o
E:\termophisx\Sourses(pc)\C++\internet\winsock\main.cpp: In function 'int main(int, char)':
E:\termophisx\Sourses(pc)\C++\internet\winsock\main.cpp:129:40: warning: passing NULL to non-pointer argument 2 of 'void CreateThread(LPSECURITY_ATTRIBUTES, DWORD, LPTHREAD_START_ROUTINE, PVOID, DWORD, PDWORD)' [-Wconversion-null]
&client_socket,NULL,&thID);
^
E:\termophisx\Sourses(pc)\C++\internet\winsock\main.cpp:129:40: warning: passing NULL to non-pointer argument 5 of 'void CreateThread(LPSECURITY_ATTRIBUTES, DWORD, LPTHREAD_START_ROUTINE, PVOID, DWORD, PDWORD)' [-Wconversion-null]
mingw32-g++.exe -o bin\Debug\winsock.exe obj\Debug\main.o -l ws2_32 "..\..\..\..\..\Program Files\CodeBlocks\MinGW\lib\libws2_32.a" "..\..\..\..\..\Program Files\CodeBlocks\MinGW\lib\libwsock32.a" "..\..\..\..\..\Program Files\CodeBlocks\MinGW\lib\libws2_32.a" -lws2_32.lib "E:\Program Files\CodeBlocks\MinGW\lib\libws2_32.a"
e:/program files/codeblocks/mingw/bin/../lib/gcc/mingw32/4.8.1/../../../../mingw32/bin/ld.exe: cannot find -lws2_32.lib
collect2.exe: error: ld returned 1 exit status
Process terminated with status 1 (0 minute(s), 6 second(s))
1 error(s), 2 warning(s) (0 minute(s), 6 second(s))

Вот все что вываливается

Ответы: >>523552, >>523556

30 Июл, 21:53 #326 #523551

>>523542
>>523542
Все просто, скажи "на сцене - константа!".

Ответы: >>523554

30 Июл, 21:55 #327 #523552

>>523544
>Вот все что вываливается
Лол, ты как твой батя говоришь. Он кстати это говорил когда твоя мама вернулась из тура по Грузии)

30 Июл, 21:56 #328 #523554

>>523551
Блджадь я делаю он пишет неправильно, 4 ошибки, скобочки не там то то не тут то.

30 Июл, 21:59 #329 #523556

>>523544
Кодь в MVS бесплатном или быдлере, нехуй всякую еботу заместо иде использовать.

Ответы: >>523659

30 Июл, 22:27 #330 #523576

>>523534
Code::Blocks славится своими глюками.
Либо из консоли ебашь, либо MS Visual Studio Express

40 Кб, 800x454

31 Июл, 04:26 #331 #523652

Есть софт, который мне составит хит-парад самых длинных методов/функций среди моих C++-исходников?

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

31 Июл, 06:20 #332 #523658

>>523656
Потому что твоя мать шлюха

31 Июл, 06:21 #333 #523659

>>523556
Цлион же

31 Июл, 08:45 #334 #523669

>>523534
В настройках проекта, где либу подключать
В первой колонке:
ws2_32
Во второй: -static

Мимокрокрдил, когда то на лабах было такое

108 Кб, 604x604

31 Июл, 17:24 #335 #523844

Здарова, парни. У меня к вам вопрос, можно ли после Страуструпа "Принципы и практика программирования на C++" идти изучать WinAPI и все остальное Рихтера? Просто уже хочется чето попилить, интересно же. Или лучше Майерса сначала читнуть придется? А можно ли совместить? Короче, добрые аноны, нужна ваша помощь, спасибо.

Ответы: >>523864, >>524015, >>524043

31 Июл, 17:36 #336 #523855

Сильно не пинайте, но что насчет IDEs? После жабы очень неудобно переименовывать переменные и функции: там такой хуяк, refactor-rename и все везде переименовалось, а тут в один раз в классе переименовал, а потом бегай в методах руками опять снова все переименовывай.
MSVS2010EE

Ответы: >>523916, >>523925

31 Июл, 18:07 #337 #523864

>>523844
Да.

Ответы: >>523865

31 Июл, 18:11 #338 #523865

>>523864
че да

Ответы: >>523922

31 Июл, 20:11 #339 #523916

>>523855
Visual Assist X / JetBrains ReSharper for c++

Ответы: >>523918

31 Июл, 20:26 #340 #523918

>>523916
Оба платные, VS Express Edition не может в расширения.

31 Июл, 20:29 #341 #523920

Нужно написать пару тройку гуевых программ, которые будут обмениваться инфой по COM порту и отображать всякую инфу.
Что лучше выбрать:
1. QT
2. C++ Builder
Кроссплатформенность не нужна, достаточно винды.

Ответы: >>523923, >>523926, >>524157

31 Июл, 20:33 #342 #523922

>>523865
У тебя во рту елда.

Ответы: >>523942, >>523947

sage 31 Июл, 20:34 #343 #523923

>>523920
Delphi 6.

Ответы: >>523924

31 Июл, 20:36 #344 #523924

>>523923
С Delphi не сталкивался никогда, да и не хочется.

31 Июл, 20:37 #345 #523925

>>523855
Resharper for C++

31 Июл, 20:39 #346 #523926

>>523920
C#, WPF или Windows Forms

Ответы: >>523946, >>524045

33 Кб, 598x432

31 Июл, 21:19 #347 #523942

>>523922
я вопрос как-то неправильно задал или ты пес на суете?

31 Июл, 21:31 #348 #523946

>>523926
С шарпом проблема - нельзя доп. либы тянуть.

Ответы: >>523952

sage 31 Июл, 21:38 #349 #523947

>>523922
С подливой.

31 Июл, 21:44 #350 #523952

>>523946
Т.е. не доп либы, а дотнятинку.

31 Июл, 21:49 #351 #523954

Кто пробовал, тяжело ли или долго обучиться c# ,если знаешь основы c++?

Ответы: >>523961

31 Июл, 22:20 #352 #523961

>>523954
Не сложно.

Ответы: >>523964

31 Июл, 22:22 #353 #523962

Поясните, я изучаю основы С++, не совсем понял что я неправильно написал:
while ((friend_sex != 'm') || (friend_sex != 'f'))
{
cin >> friend_sex;
}
Хочу сделать проверку - если friend_sex != 'm' или friend_sex != 'f', то чтобы я вводил его, пока я не введу f или m. Но в моём случае даже если я ввожу f или m - всё равно не продолжается скрипт.

Ответы: >>523967

31 Июл, 22:23 #354 #523964

>>523961
А сколько по времени? Весь день свободный. Вместе с ООП. Хочется на юнити что-нибудь сделать.

Ответы: >>524046, >>524066, >>524093

31 Июл, 22:26 #355 #523967

>>523962
Именно тут вроде все впорядке. Попробуй отладчик,если в MVS

Ответы: >>523969

31 Июл, 22:29 #356 #523969

>>523967
Вот код, программа запускается - пик, но не работает.

Ответы: >>523970

87 Кб, 1271x806

31 Июл, 22:29 #357 #523970

>>523969
Пик забыл.

Ответы: >>523973, >>523976, >>524012, >>524014

31 Июл, 22:32 #358 #523973

>>523970
одинарные кавычки на двойные замени в проверках.

Ответы: >>523988

881 Кб, 2048x1152

31 Июл, 22:37 #359 #523976

>>523970
Все перепробовал,это заработало.

Ответы: >>523979, >>523988, >>524016, >>524067

31 Июл, 22:41 #360 #523979

>>523976
Можно без привязки к типе чар

17 Кб, 596x489

31 Июл, 23:05 #361 #523988

>>523973
В этом случае у меня вылетает ошибка - пик.

>>523976
Спасибо, так работает, но почему? У нас же одинаковые выражения, просто, в твоём случае не вынесено на скобки?
Кстати, ты что, монитор фоткал?

Ответы: >>523995, >>523996

31 Июл, 23:39 #362 #523995

>>523988
Потому что тут ты сравниваешь не char, а char*. А на прошлом пике было char, из-за этого и работает. Узнай разницу между 'm' и "m".

Ответы: >>523998, >>524000

31 Июл, 23:40 #363 #523996

>Спасибо, так работает, но почему? У нас же одинаковые выражения, просто, в твоём случае не вынесено на скобки?
>Кстати, ты что, монитор фоткал?

>>523988
Скорее всего вся лабуда в приоритетах операций. Да,сижу через 2ч браузер на ведре.

Ответы: >>523997

31 Июл, 23:42 #364 #523997

>>523996
Aide на ведре уже умеет крестовые хеллоу ворлды компилировать.

31 Июл, 23:45 #365 #523998

>>523995
Может он пока указатели не изучил.

Ответы: >>524001

31 Июл, 23:47 #366 #524000

>>523995
Не совсем понял?
Мне в задании написали:
>Объявите переменную типа char
Я пробовал в одинарные ковычки ставить чар, мне писало ту ошибку - вроде одинарные ковычки меняют тип чара во что-то другое?
Я сам изучал несколько лет назад пхп и неплохо его знаю, помню что в двойных работает код, в одинарных нет.

Ответы: >>524003, >>524007, >>524068, >>524094

31 Июл, 23:49 #367 #524001

>>523998
http://pastebin.com/WMcm0zqp
Лень разбираться с js плагином для двощей, так что вот пастбин.

Ответы: >>524003

31 Июл, 23:50 #368 #524003

>>524001 -> >>524000
Не туда зареферил, сорь.

31 Июл, 23:53 #369 #524007

>>524000
Да и вообще присмотрись в своей же код. У тебя внизу if корректный идет.

Ответы: >>524010

01 Авг, 00:01 #370 #524010

>>524007
Я знаю, просто, я хотел вайлом сделать так, чтобы если кто-то ввёл не ф или м, то надо было заново вводить.

Ответы: >>524011

01 Авг, 00:01 #371 #524011

>>524010
Я имею в виду сравнение корректное. У тебя внизу вон и вайл закоменчен правильный. Короче поменяй на одинарные ковычки.

Ответы: >>524012

01 Авг, 00:04 #372 #524012

>>524011
Закомментированный вайл тут: >>523970?
С ним не работает.

Ответы: >>524013

01 Авг, 00:08 #373 #524013

>>524012
Там не || должно быть, а &&. Я, как обычно, сперва не заметил. Олсо если ты сравниваешь с std::string, то работай с "m", да.

01 Авг, 00:09 #374 #524014

>>523970
У тебя условие заведомо всегда выполняется. Потому что либо пол не равен m, либо пол не равен f, либо не равен обоим. Поменяй || на &&.

01 Авг, 00:12 #375 #524015

>>523844
але

Ответы: >>524017

01 Авг, 00:12 #376 #524016

>>523976
А вот здесь всё правильно.
!(a||b) = (!a)&&(!b)

01 Авг, 00:13 #377 #524017

>>524015
Тю, что за странный вопрос. Если хочется что-то делать, то возьми и делай.

Ответы: >>524018

01 Авг, 00:15 #378 #524018

>>524017
Он не знает что делать, но хочет что-то сделать.

Ответы: >>524019

01 Авг, 00:17 #379 #524019

>>524018
Ну пущай возьмет да начнет пилить гуйцы там, или хрень какую с сокетами, или с базами, или с gpu. Просто возьми интересующую тебя тему, придумай таск и вперед.

01 Авг, 01:46 #380 #524043

>>523844
>2015
>WinAPI

Ответы: >>524173

01 Авг, 01:53 #381 #524045

>>523926
А реально ли заюзать WPF или Windows Forms в mingw, и есть ли примеры?

39 Кб, 600x425

01 Авг, 01:58 #382 #524046

>>523964
Я хочу от дома дойти до Германии, весь день свободный, сколько времени это займет? Хочу стать немцем.

01 Авг, 02:05 #383 #524049

Анон, как правильно пользоваться ебучей функцией CreateFont? Я хочу просто получить 14 размер шрифта, и что я вижу:
int fontHeight = -MulDiv(Size, pixelsPerInch, 72);
int SetMapMode(HDC hdc, int fnMapMode);
логические единицы и т.д.
что все это за хуйня?

01 Авг, 07:39 #384 #524066

>>523964
В юнити сложность не в самом знании языка, там надо знать саму среду. То есть можно знать основы шарпа и js, и просто искать готовые скрипты и исходя из них уже делать что то свое.

sage 01 Авг, 07:46 #385 #524067

>>523976
Что это за черненькая IDE на пике?

Ответы: >>524069

01 Авг, 07:52 #386 #524068

>>524000
>вроде одинарные ковычки меняют тип чара во что-то другое?

'а' это переменная типа char, а не чаровский массив, который строка. только 1 символ может быть в ' '
"a" это уже строка типа char *, потому что в си нет стрингов, и строки там работают через указатели на элементы чаровского массива.

01 Авг, 08:07 #387 #524069

>>524067
студия

01 Авг, 10:40 #388 #524093

>>523964
1 год ушел на JAVA, если в ООП хорошо шаришь, то напишешь свою первую игру за день.

01 Авг, 10:42 #389 #524094

>>524000
char a1 = 'a';
char* a2 = "a" // Это на самом деле массив, содержащий 2 чара: 'a' и '\0'

01 Авг, 14:00 #390 #524147

Что-нибудь для работы с rdp есть? На msdn ясно ровно нихуя для c# похоже, а ставить c++ builder это уж слишком костыльно.

01 Авг, 14:36 #391 #524157

>>523920
qt

01 Авг, 14:52 #392 #524173

>>524043
а че ты советуешь?
ничего плохого не вижу в том, чтобы начать с винапи.

01 Авг, 18:07 #393 #524252

Сап плюсаны. Дошел вот в книжке до главы, посвященной перегрузке стандартных операций. Не пойму, в чем косяк в одном из упражнений. Надо сделать класс Time и перегрузить для него операции "++" и "--" в префиксной и постфиксной форме. Вот листинг: http://pastebin.com/wTd9F25N
Почему-то не работает постфиксная форма, хотя сделал как написано в книжке, путем добавления (int) в конец строки с ключевым словом operator.
Результат работы проги:
>Задаем значение объекта t1
13:15:45
>Задаем значение объекта t2
12:21:8
>Результат сложения t3 = t1 + t2
1:36:53
>Результат ++t1
13:15:46
>Вычисляем t3 = t1++, выводим t1 (верное значение)
13:15:47
>Выводим t3 (неверное значение, должно быть 13:15:46, т.к. типа постфиксная форма "++" в присваивании
13:15:47
>Результат --t2
12:21:7
>Вычисляем t3 = t2--, выводим t2 (верное значение)
12:21:6
>Выводим t3 (неверное значение, должно быть 12:21:7, т.к. типа постфиксная форма "--" в присваивании
12:21:6

Никак не пойму, где косяк?

Ответы: >>524255, >>524287

Batya 01 Авг, 18:12 #394 #524255

>>524252
Я не пойму твой код)

Ответы: >>524270

01 Авг, 18:31 #395 #524270

>>524255
А что именно непонятно?
Объект класса Time это типа время, три поля: часы-минуты-секунды. Для операций над этим объектом время преобразуется в одно значение -- секунды, к нему че-нить прибавляется или отнимается, потом обратно преобразуется в часы-минуты-секунды.

01 Авг, 18:47 #396 #524280

Царь Сбез плюсов здесь следующие пару дней, задавайте вопросы. Стандарты, синтаксис - вот. Но не хлестайте сильно прутьями

Ответы: >>524380, >>524439

01 Авг, 18:53 #397 #524284

Какие есть способы упаковки QT приложения, так, чтобы оно не весило ~40 мб?

Ответы: >>524285

01 Авг, 18:56 #398 #524285

>>524284
Сжать свой анус. Что, эта хуета строго линкуется при компиляции? Или это: графен - тут размер не важен.

Ответы: >>524292

01 Авг, 19:01 #399 #524287

>>524252
Я вроде разобрался, но, честно, не ожидал, что можно сделать так по-ебанутому.
Посмотрев на другие примеры и на решения других аффтаров этого упражения, я пришел к выводу, что если мы хотим перегружать именно постфиксную форму, то надо в коде перегруженного оператора использовать постфиксные выражения инкрементирования.
Т.е., сука, надо писать не i = i + 1, return(i); а именно , сука, return(i++);
Честно, у меня просто нет слов от этой ебанутой логики. До сего момента я понимал, в целом, всю инфу, касательно языка-синтаксиса. А просто в ахуе.

Ответы: >>524288, >>524310, >>524390

01 Авг, 19:02 #400 #524288

>>524287
* теперь просто в ахуе
Быстрофикс.

01 Авг, 19:05 #401 #524292

>>524285
Никакого особенного гуя нет - гуй нативный на вид.

01 Авг, 19:30 #402 #524310

>>524287
>надо писать не надо писать не i = i + 1, return(i); а именно , сука, return(i++);; а именно , сука, return(i++);

Потому что i = i + 1, return(i); это тоже самое что и return(++i);

Ответы: >>524360

01 Авг, 20:49 #403 #524360

>>524310
Я еще раз разобрался, после того, как в первый раз разобрался, лол.
В общем, стал жертвой своей невнимательности.
Хороший урок на будущее.

01 Авг, 22:19 #404 #524380

>>524280
Отличаются ли чем-нибудь с практической точки зрения (кроме наличия/отсутствия деструктора) thread_local указатель и thread specific storage (функции tss_… в c11 и pthread_key_… в posix)? Для чего вообще в стандарт добавили tss_... , если есть thread_local? Что лучше использовать?

01 Авг, 22:22 #405 #524381

Нужно нарисовать форму со своими кнопками свернуть/развернуть/закрыть, т.е. переделать их вид типо как в aimp или winamp сделано. Как это можно сделать с помощью QML?

01 Авг, 23:01 #406 #524390

>>524287
Как ты собрался перегружать инкремент объекта класса просто написав i++ к одной переменной?
>надо писать не i = i + 1, return(i); а именно , сука, return(i++);

Это вообще разные вещи.
i = i + 1;
return i;
это префиксный инкремент. А
return i++;
постфиксный

Ответы: >>524440

02 Авг, 06:29 #407 #524439

>>524280
Как его лучшее всего учить не трогая кресты? Только K&R знаю.

Ответы: >>524752

02 Авг, 06:30 #408 #524440

>>524390
Мне непонятно, почему "префиксность" и "постфиксность" перегруженной операции завязаны на "префиксность" и "постфиксность" кода оператора. Нахуя так делать? Вот же есть ключевое слово (int), пусть оно и указывает на форму инкремента, независимо от того, что там в коде оператора. Я так полагал, что это самое (int) указывает, что надо сперва присвоить значение переменной/объекту слевы от знака "=", а потом уже проводить вычисления над инкрементируемой переменной/объектом. Либо я что-то не до конца понимаю, либо это какой-то пиздец.

Ответы: >>524442, >>524447, >>524460

02 Авг, 07:55 #409 #524442

>>524440
Если ты перегружаешь постфиксный/префиксный оператор, то логично, что и код должен быть соответственный?

Ответы: >>524639

02 Авг, 08:40 #410 #524447

>>524440
Ты запутался. Дело не в форме кода оператора. (int) указывает на то что перегружен постфиксный оператор, больше нихуя он не делает. Если в коде встречается ++t то вызывается operator++ если t++ то operator++(int), все. Постфиксный оператор должен возвращать неизмененное значение . Выражения i = i + 1, return(i); и return(i++); не равноценны. Первое возвращает увеличеное на 1 число. Второе возвращает неизмененное число (и увеличивает его на один). В коде постфиксного оператора инкремента нужно сохранить старое значение, увеличить на еденицу, и вернуть сохраненное сторое значение. Твой operator++(int) должен выглядеть примерно как:
Time operator++(int) {
\t Time temp(h,m,s);
int seconds = (h 3600) + (m 60) + s;
seconds++;
h = seconds / 3600;
m = (seconds - (h 3600)) / 60;
s = seconds - (h 3600) - (m * 60);
if (h > 24) { h -= 24; }

return temp;
}

Ответы: >>524639

02 Авг, 10:27 #411 #524460

>>524440
>Мне непонятно, почему "префиксность" и "постфиксность" перегруженной операции завязаны на "префиксность" и "постфиксность" кода оператора. Нахуя так делать?
Блять потому что это логично? Нет? А если ты перегружаешь, к примеру, оператор == тебя не будет смущать что он же будет использоваться в коде перегрузки?
>Вот же есть ключевое слово (int), пусть оно и указывает на форму инкремента, независимо от того, что там в коде оператора.
Так и есть. Если ты хочешь можешь сделать чтобы префиксный инкремент добавлял к переменной 1 а постфиксный 2. Да вообще все что угодно можешь туда написать.

Ответы: >>524639

90 Кб, 387x362

02 Авг, 15:54 #412 #524533

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

Ответы: >>524535, >>524611

02 Авг, 15:59 #413 #524535

>>524533
нашел вот такую книгу - "Boost.Asio C++ Network Programming" John Torjo. Как она ваще?

02 Авг, 16:01 #414 #524538

Есть тут кто? Я нуб, есть вопрос.
Изучаю по Страуструпу, начинаю делать 1 задания, но у меня возникает ошибка, или, скорее я не знаю как сделать:
Я хотел сделать так, что если вводишь что-то кроме f или m, то выдавало бы ошибку.
Я сделал такую конструкцию:

while ( (friend_sex != 'm') && (friend_sex != 'f') )
{
cin >> friend_sex;
cout << "Enter f or m: ";
}

Но! В этом случае если я верно - идёт следующий шаг, но cout всё равно выводит "Enter f or m: ", что я не так сделал? Ввёл f например, а конструкция выводится. Номер 1 на пике.
Кстати, если ввести слово, то выводится столько этих конструкций, сколько символов в фразе.

Код: https://ideone.com/X6yDih

Ответы: >>524540, >>524542, >>524575

314 Кб, 1899x1106

02 Авг, 16:03 #415 #524540

>>524538
Пик забыл.

Ответы: >>524542

02 Авг, 16:06 #416 #524542

>>524540
>>524538
А всё, решил так:
while ( (friend_sex != 'm') && (friend_sex != 'f') )
{
cin >> friend_sex;
if ( (friend_sex != 'f') && (friend_sex != 'm') )
{
cout << "Enter f or m: ";
}
}

02 Авг, 17:33 #417 #524575

>>524538
do { } while(); используй.

02 Авг, 19:19 #418 #524611

>>524533
ну поцаны)

02 Авг, 20:39 #419 #524639

>>524447
Большое спасибо за развернутый ответ, так стало намного понятнее. Добра тебе.

>>524442
>>524460
Ну, сам я не допер, а в книжке этот нюанс разжеван не был. В некоторых вещах, бывает, начнешь думать в одном направлении, не замечая другого и упираешься.

76 Кб, 1011x746

02 Авг, 21:19 #420 #524651

Поясните, что я не так делаю?
Когда нажимаю любую клавишу то начинается спам текстом.
Хотя, вроде не должно, даже если нажимаю k or m.

Ответы: >>524655, >>524657, >>524658

02 Авг, 21:24 #421 #524655

>>524651
Ну ты смотри, вводишь то перед циклом символ и если он не k || m, то начинает тупо флудить cout'ом, разве это не очевидно?

02 Авг, 21:27 #422 #524657

>>524651
Зачем тебе вообще там цикл? Почитай внимательно что у тебя написано в while. Там будет true что бы ты не нажал. Поэтому и получается бесконечный цикл.

Ответы: >>524658

02 Авг, 21:29 #423 #524658

>>524651
>>524657
Точно, вписал цин внутрь цикла и заработало. Просто, я еще не совсем понял как всё работает.

59 Кб, 1304x726

02 Авг, 21:59 #424 #524670

Поясните опять что я не так делаю? Я уже всё испробовал и посмотрел свою прошлую программу - всё должно работать: почему после ввода k программа не выводит - введите сколько километров т.д.? А просто мигает пустым символом ввода?

Ответы: >>524676, >>524679, >>524702, >>524703, >>524884

02 Авг, 22:08 #425 #524676

>>524670
используй дебаггер, люк

Ответы: >>524681

02 Авг, 22:22 #426 #524678

Пишу реализацию очереди с приоритетами.
Хедер: https://ideone.com/tnWS3d
Сорец: https://ideone.com/8bbz5v

Правильно ли я начал реализовывать методы шаблонного класса? Что я делаю не так в последнем методе? Ошибка:

error C2664: Item::Item(const Item &): невозможно преобразовать параметр 1 из "Item " в "const Item &"
1> Причина: невозможно преобразовать "Item " в "const Item"
1> Ни один конструктор не смог принять исходный тип, либо разрешение перегрузки конструктора неоднозначно

02 Авг, 22:23 #427 #524679

>>524670
или вместо и

Ответы: >>524681

02 Авг, 22:25 #428 #524681

>>524676
Как им пользоваться?

>>524679
Если юзаю или, то там на 1 строчке всё застревает.

Ответы: >>524705

02 Авг, 23:02 #429 #524702

>>524670

Сделай вот так:

char a;

\twhile (1){
\t\tcin >> a;
\t\tif (a == 'k' || a == 'm') break;
\t\tcout << "Vvedite k libo m!" << endl;
\t}

17 Кб, 549x235

02 Авг, 23:03 #430 #524703

>>524670
Ебанутая доска.

02 Авг, 23:09 #431 #524705

>>524681
Ставишь брейкпойнт, запускаешь в режиме дебага, когда программа останавливается, идешь построчно и мониторишь значения переменных

02 Авг, 23:39 #432 #524715

В чистом С ведь нет ООП, но можно сделать псевдо ООП помещая в структуру не функцию, а указатель на неё или ещё какими либо способами. Тогда Можно написать структуру в которой функция. Прогнать через какой-то волшебный персер который превратит её в указатель. А потом получившийся исходник скомпилировать на чистом С. Значит таким образом можно и перегрузку имён сделать и повысить уровень языка ме потеряв в скорости т.к. используется компилятор С. Это можно считать новым языком? Что-то похожее ведь сделали. Как это называется и почему оно ещё не вытесняло С?

Ответы: >>524741

02 Авг, 23:57 #433 #524719

>>524718
Можешь запустить экзэшник из консоли и перенаправить вывод в файл? Хуй знает что у тебя за проблема. Это у тебя консольная графика должна быть из книги лафоре?

02 Авг, 23:59 #434 #524721

Скопипащу из ньюфаг треда вопрос сюда. Там уже овер 800 постов. Скоро должен утонуть.

http://aliev.me/runestone/index.html
Отличное оглавление. Есть точно такое же чтобы и с разбором алгоритма решения и с реализацией только для С++?

Есть книга для самых основ алгоритмов? Чтобы если ничего не знаю с нуля мог изучать эти алгоритмы. Только чтобы обязательно были решения на С++.

03 Авг, 00:10 #435 #524731

>>524725
>Через cmd?
Да.

>А это как?
В винде это вроде делается так. file.exe>file.txt Перед этим зайди в папку с экзэшником. Если не сработает попробуй .exe убрать и/или start в начале приписать.

Это скорее всего не поможет. Просто интересно будет ли такая ошибка если консоль не трогать и как консольная графика ведёт себя с файлами.

Ответы: >>524733

03 Авг, 00:12 #436 #524733

>>524731
> >
Всё таки надо 2 таких символа.
>>

03 Авг, 00:19 #437 #524741

>>524715
> Что-то похожее ведь сделали
Да.
> Как это называется
С++ и Objective-C (старые трансляторы)
> почему оно ещё не вытесняло С
Там где используется С ООП нинужно. Там где нужно ООП можно навернуть джаву или шарп.

Ответы: >>524752

03 Авг, 00:27 #438 #524752

>>524741
Ты С знаешь? Пока ты тут ответь ещё и на этот вопрос. >>524439
Какие отличия Objective-C от обычного С? Слышал про Swift это что похожее?

Ответы: >>524763

03 Авг, 00:40 #439 #524763

>>524752
> Какие отличия Objective-C
Отличия минимальные, добавлена только работа с объектами (определение объекта, посылка ему сообщений, протоколы и категории). Правда большинство кода как раз и состоит из ебли объектов, по-этому objC код мало похож на сишный. Ну и там по мелочи есть импорт, литералы. Добавлены блоки (лямбда/замыкания) - но это эпловское расширение языка С. И все. А swift он по синтаксису ближе к С но в общем дальше ушел, так как более современный.

Ответы: >>525126

03 Авг, 02:05 #440 #524788

Как Передать в функцию адрес элемента матрицы?

Ответы: >>524791

03 Авг, 02:29 #441 #524791

>>524788
http://g.zeos.in/?q=%D0%9A%D0%B0%D0%BA%20%D0%9F%D0%B5%D1%80%D0%B5%D0%B4%D0%B0%D1%82%D1%8C%20%D0%B2%20%D1%84%D1%83%D0%BD%D0%BA%D1%86%D0%B8%D1%8E%20%D0%B0%D0%B4%D1%80%D0%B5%D1%81%20%D1%8D%D0%BB%D0%B5%D0%BC%D0%B5%D0%BD%D1%82%D0%B0%20%D0%BC%D0%B0%D1%82%D1%80%D0%B8%D1%86%D1%8B%3F
Не благодари.

5 Кб, 177x530

03 Авг, 12:26 #442 #524882

Я всё никак не могу решить свою задачку про километры. Я тут расписал булеан, всё правильно?
Т.е. в случае ИЛИ - если есть хоть 1 ТРУ, то команда проходит. Не проходит только если все ФАЛС.
В случае И - если хоть 1 ФАЛС, то автоматом не проходит команда.
Так?

Ответы: >>524884

59 Кб, 1133x953

03 Авг, 12:33 #443 #524884

>>524882
Сам нагуглил как работают команды типа вайла или ифа, вычислил как работает булеан методом проб и ошибок, потом перенёс и заменил значения как бы это работало в программу... И всё заработало как надо!
кун->>524670

03 Авг, 15:05 #444 #524961

Подскажите, я решил сделать так, что в зависимости от введённой буквы брался бы и тип переменной:
if (symbols_select == 'd')
{
double val1;
double val2;
}
if (symbols_select == 'i')
{
int val1;
int val2;
}
val1 = 0;
val2 = 0;

Но в этом случае пишет что там где val1 = 0; что она не объявлена еще на стадии запуска программы.
Но у меня дальнейший код настроен так, чтобы работать и с даблом или с интеджером.
Получается мне его 2 раза копировать и каждый в свой ИФ кинуть?

Ответы: >>524972

03 Авг, 15:36 #445 #524972

>>524961
Почитай про области видимости. То что ты хочешь сделать можно только классом навернуть, ну или в зависимости для чего может юнион еще подойдет.

03 Авг, 16:28 #446 #524991

Программка со сравнением 3х чисел, вроде верно: https://ideone.com/DB2N6X

03 Авг, 17:37 #447 #525034

Хм... Поясните, почему если у интеджера, который на 1 больше чётного числа взять % остаток от деления, он мне всегда выдаёт: 1952805748

Ответы: >>525035, >>525036

03 Авг, 17:40 #448 #525035

>>525034
Ой, немного не так, в общем такой код:
balance = num % 2;
if (balance != 0)
{
cout << "test";
}
Если тест в одиночных кавычках, то выдавало это число.

Ответы: >>525036, >>525045

03 Авг, 17:44 #449 #525036

>>525034
>>525035
Ты ебнутый?

Ответы: >>525037

03 Авг, 17:45 #450 #525037

>>525036
Нет, почему?

Ответы: >>525038

03 Авг, 17:46 #451 #525038

>>525037
Какие нахуй строки в одинарных кавычках?

Ответы: >>525040

03 Авг, 17:49 #452 #525040

>>525038
Я понял что вы мне поясняли в прошлый раз - в двойных кавычках получается как массив чара, в одиночных - 1 символ, так?
Я, просто, не совсем понял как это работает - т.е. ковычки ВСЕГДА чар?

Ответы: >>525063

03 Авг, 17:58 #453 #525045

>>525035
Чот в голосину с тебя. Тебе в варнингах ничего не выдали? cout конечно умный, но не настолько, чтобы ты разбрасывался кавычками как тебе угодно.

03 Авг, 18:29 #454 #525063

>>525040
' ' - один char
" " - строка

Ответы: >>525067

03 Авг, 18:33 #455 #525067

>>525063
>" " - строка
string?
Я гуглил, показывало что это char* (char array)

Ответы: >>525070, >>525081

03 Авг, 18:41 #456 #525070

>>525067
Учебник почитай, хуесос

Ответы: >>525072

03 Авг, 18:42 #457 #525072

>>525070
Я как раз читаю, но не оскорбляй меня - все профессионалы начинали когда-то. К тому же лучше глупый вопрос, чем вообще ничего.

Ответы: >>525075

03 Авг, 18:44 #458 #525075

>>525072
Лучше читать учебник, хуесос. Ты задаёшь не глупые вопросы, ты просишь пересказать учебник. Гугли что такое литерал, строковой литерал и.т.п.

Вон из профессии

03 Авг, 18:58 #459 #525081

>>525067
Ну так а чем по твоему является строка?

43 Кб, 741x349

03 Авг, 19:09 #460 #525087

Как работает это ебанутый for в 19-той строке? Так можно только с вектором или у for есть другой способ использования?

Ответы: >>525130

03 Авг, 19:44 #461 #525122

>>524804
>Что делать?
Попробуй другой компилятор.

03 Авг, 19:50 #462 #525126

>>524763
Спасибо. Последний вопрос. Что нужно почитать/освоить чтобы на программировании контроллеров на С можно было зарабатывать?

Ответы: >>525133

03 Авг, 20:02 #463 #525130

>>525087
Работает со всем, для чего определены std::begin и std::end, возвращающие хотя бы forward-итераторы.

03 Авг, 20:04 #464 #525133

>>525126
Разбираться в электронике и ЦОС.
Знать, как работает периферия в М.П.
Задача сделать FSK модем на 16/32 битном М.П. с исправлением ошибок тебя не должна пугать. Это высокий уровень.

Ответы: >>525136

03 Авг, 20:06 #465 #525136

>>525133
И что лучше почитать если уже освоил С++ за 21 день?

Ответы: >>525137, >>525139

03 Авг, 20:09 #466 #525137

>>525136
easyelectronics.ru
Начинай с 8-ми битных AVR.
Далее переходи на STM32.
Далее пытайся выполнять заказы с electronix.ru

Ответы: >>525139, >>525140

03 Авг, 20:11 #467 #525139

>>525136
>>525137
И да, язык здесь - последнее дело. Знаешь С - тебе хватит этого на пару лет.

Ответы: >>525140

03 Авг, 20:12 #468 #525140

>>525137
>Начинай с 8-ми битных AVR.
>Далее переходи на STM32.
Есть способ этому учиться не покупая этих железячек?

>>525139
А что надо перед практикой почитать?

Ответы: >>525143

03 Авг, 20:18 #469 #525143

>>525140
>Есть способ этому учиться не покупая этих железячек?
Невозможно. Заказчик тебе пришлет макет, под который надо прошивку сделать - а ты проц впервые видишь и не понимаешь куда припаять вот это туда. Готовь деньги, паяльник и прямые руки. Сэкономить на отладочных платах сложно, но можно.
Хорошая плата для STM32 стоит 100€. Для AVR дешевле существенно.
А в принципе всё это копейки.

Имеет смысл пощупать процы MSP430.

Ответы: >>525146

03 Авг, 20:21 #470 #525146

>>525143
Жаль. Тогда на чём можно зарабатывать зная С++? QT выучу и можно на фриланс/работу потом?

Ответы: >>525148

03 Авг, 20:22 #471 #525148

>>525146
Можно и на кутях.
Занимайся тем, что тебе нравится.
Хоть в энтерпрайз на джаве, хотя это очень уныло.

03 Авг, 20:35 #472 #525157

Создал я объекты:
{
Object object1(67);
Object *object2 = new Object(67);
}
Какие из них будут удалены после выхода за область видимости?

Ответы: >>525205, >>525215

03 Авг, 21:45 #473 #525205

>>525157
Первый. Второй потеряешь но память будет занимать. Если у класса нет деструктра первый пропадёт?

03 Авг, 22:14 #474 #525215

>>525157
Первый создастся на стеке и будет удален по выходу из функции.
Во втором случае на стеке создан будет указатель, а сам объект в куче. Указатель по выходу из функции так же будет утерян.

Ответы: >>525216, >>525218

03 Авг, 22:17 #475 #525216

>>525215
Ага! А памяти таки нажремся во втором случае?

Ответы: >>525250

03 Авг, 22:19 #476 #525218

>>525215
Диструктор нужно для класса писать?

03 Авг, 22:33 #477 #525227

Посоны, никак не могу ждать до бамплимита, который, видимо, будет ночью, так что вот вам
НОВЫЙ ТРЕД
http://2ch.pm/pr/res/525225.html
http://2ch.pm/pr/res/525225.html
http://2ch.pm/pr/res/525225.html

03 Авг, 23:01 #478 #525250

>>525216
Конечно.

06 Авг, 07:12 #479 #526241

Для начала подойдет.
http://www.youtube.com/watch?v=CF5YMeW0SSw

Ответы: >>539019

03 Сен, 14:29 #480 #538907

Бамп.

sage 03 Сен, 16:52 #481 #539000

[code lang="programming_laugnage"] %your code% [/code]

sage 03 Сен, 16:53 #482 #539002

[code lang="programming_laugnage"] %your code% [/code]

sage 03 Сен, 16:53 #483 #539003

[code lang="programming_laugnage"] %your code% [/code]

sage 03 Сен, 16:54 #484 #539004

[code] %your code% [/code]

sage 03 Сен, 16:58 #485 #539007

[code]
Just some text.
Nothing is highlighted, it is just kept monospace, preserving the
spaces and special symbols.
[/code]

03 Сен, 17:18 #486 #539019

>>526241
Нихуя не пойдет. Пиздец какой-то.

Тред утонул или удален.
Это копия, сохраненная 27 сентября 2015 года.

Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.

« /pr/В начало тредаВеб-версияНастройки/a//b//mu//s//vg/Все доски

Пользуетесь скринридером — пишите, что можно улучшить.
Host-Food.ru — надёжный хостинг от 12 руб/мес | Free DNS
Зеркала М.Двача: m2ch.hk, m2ch.lib, m2chfapiswfw2wcakptqp4o6ltgchvjuxfab7urxlduraomtlnhw5xad.onion