Результаты поиска
| |
-l33t-h4xx- | Дата: Среда, 02 Июля 2014, 09:56 | Сообщение # 81 | Тема: Вопрос-Ответ (C++) |
участник
Сейчас нет на сайте
| Alkosha, а жахни sscanf'ом (он в cstdio). Если ты можешь гарантировать, что пробелов и других левых символов в строке нет, то как раз самое то:
Код int a, b, c;
const char *numbers = "100,-200,300";
sscanf(numbers, "%d,%d,%d", &a, &b, &c); // Теперь a = 100, b = -200, c = 300
Как правильно задавать вопросы
Сообщение отредактировал -l33t-h4xx- - Среда, 02 Июля 2014, 09:57 |
|
| |
-l33t-h4xx- | Дата: Пятница, 27 Июня 2014, 09:56 | Сообщение # 82 | Тема: c# или c++? Вот в чём вопрос! |
участник
Сейчас нет на сайте
| Хочу предложить вот такую спекуляцию. Вот, у нас есть ООП и есть C#, в котором ООП якобы урезано из-за отсутствия множественного наследования. Давайте исследуем эту проблему, начиная с самого низа.
Что есть краеугольный камень ООП? Объект, экземпляр класса. Что есть объект? Объект - некая сущность, которой мы отправляем сообщения. Объект обрабатывает сообщения, причём в общем случае нас не должно волновать, каким образом - инкапсуляция. Внутренности объекта не имеют значения, нам важно лишь то, какие сообщения принимает объект и что происходит в результате.
Что есть наследование? Это создание нового класса на основе существующего (да, согласен, очевидные вещи, вы их лучше меня знаете - не спешите, пожалуйста, мне они нужны для полноты рассуждения). Наследование следует понимать не иначе как то, что производный класс способен принимать все те же сообщения, что и базовый - полиморфизм. И это правильно, потому что экземпляр класса для пользователя определяется только набором принимаемых сообщений.
Что есть множественное наследование? Очевидно, это понятие не должно принципиально отличаться от немножественного, единичного наследования, а отличаться оно должно только количеством базовых классов. Множественное наследование - создание нового класса на основе ряда существующих. Понимать его нужно так: экземпляры производного класса принимают все сообщения, доступные базовым классам.
Вообще-то не все согласны, что без множественного наследования не может быть полноценного ООП, но эта концепция действительно удобна, когда нам приходится иметь дело с более или менее приближенными к действительности объектами, поэтому положим, что без множественного наследоваиня и правда нельзя. Будем считать, что без множестенного наследования ООП урезано.
Выше говорилось, что в C# нет множественного наследования. Так ли это?
Под этим, конечно, подразумевалось, что в C# недоступен такой синтаксис:
Код class Human: Mammal, Sentient { // где Mammal и Sentient - классы // . . . }
Спорить тут нечего, такого синтаксиса в C# и правда нет. Но стоить положить, что Mammal и Sentinent суть интерфейсы - и мы тут же получаем настоящее множественное наследование, потому что класс в C# способен реализовать несколько разных интерфейсов. Интерфейс есть ни что иное как абстракция сипипишного виртуального класса, без какой-либо реализации: он является перечнем сообщений, которые должны уметь получать производные классы.
Таким образом, в C# множественное наследование есть - только называется по-другому.
Как правильно задавать вопросы
Сообщение отредактировал -l33t-h4xx- - Пятница, 27 Июня 2014, 10:03 |
|
| |
-l33t-h4xx- | Дата: Пятница, 27 Июня 2014, 08:47 | Сообщение # 83 | Тема: c# или c++? Вот в чём вопрос! |
участник
Сейчас нет на сайте
| Цитата morglodddd ( ) можно говорить что просто урезано Ну дык, это же можно как угодно повернуть. Smalltalk считают образцовым ОО-языком, и когда говорят "ООП урезано" нередко подразумевают: "поддерживаются не все ОО-фичи смолтока", а "полноценное ООП" - "все ОО-фичи смолтока". Нет, пруфов не будет. Ради бога, читай дальше. Это очень субъективно, правда. А вот скажи мне, что у тебя полноценное ООП: уж не приравниваешь ли ты его ко всем ОО-фичам С++? Или у тебя другое представление об этом вопросе?
Как правильно задавать вопросы
Сообщение отредактировал -l33t-h4xx- - Пятница, 27 Июня 2014, 08:48 |
|
| |
-l33t-h4xx- | Дата: Четверг, 26 Июня 2014, 10:18 | Сообщение # 84 | Тема: c# или c++? Вот в чём вопрос! |
участник
Сейчас нет на сайте
| Цитата morglodddd ( ) Вопрос был в наличии фичи Хорошо, вот Smalltalk. В нём множественного наследования нет. Можно ли говорить, что в нём сильно урезано ООП?
Давайте не уходить от темы. Тезис-то звучал так: нет множественного наследования -> ООП урезано (причём сильно). Дальше было: с чего ради урезано, если большая часть хороших применений этой фички реализуется интерфейсами. То есть, как бы ничего существенно не меняется. Здесь должно было прозвучать доказательство или хотя бы утверждение о том, что эта идея неверна, вместо этого получаем в ответ: "При чем тут лучше/хуже?". Ещё дальше: вы все школьники, я один норм прогер, кидайте мне пруфы.
Мы точно об одном и том же спорим?
Как правильно задавать вопросы
Сообщение отредактировал -l33t-h4xx- - Четверг, 26 Июня 2014, 10:25 |
|
| |
-l33t-h4xx- | Дата: Среда, 25 Июня 2014, 08:38 | Сообщение # 85 | Тема: c# или c++? Вот в чём вопрос! |
участник
Сейчас нет на сайте
| Цитата MrFrank ( ) Не удивляйся. Приведи примеры, где множественное наследование заметно лучше интерфейсов. Так как их много и они убедительные, ты их запросто приведёшь.
Как правильно задавать вопросы
|
|
| |
-l33t-h4xx- | Дата: Вторник, 24 Июня 2014, 11:51 | Сообщение # 86 | Тема: Курсовик на с++ |
участник
Сейчас нет на сайте
| А может это и хорошо, что кресты на первых курсах. Лет через пять с буста вообще начинать будут, вот благодать наступит! Ни одного велосипедиста, всё шаблонами, как подобает настоящим мужчинам.
Как правильно задавать вопросы
|
|
| |
-l33t-h4xx- | Дата: Воскресенье, 22 Июня 2014, 09:51 | Сообщение # 87 | Тема: Требуется программист |
участник
Сейчас нет на сайте
| MotsarV, не нужно обижаться, лучше выложи. Технари народ хищный, пока не сделаешь, как они скажут, будут грызть, как бы ты ни был в сущности прав. И твой программист тебя не заметит. В итоге никто не доволен.
Как правильно задавать вопросы
|
|
| |
-l33t-h4xx- | Дата: Пятница, 20 Июня 2014, 12:51 | Сообщение # 88 | Тема: Как скомпилировать программу на C# |
участник
Сейчас нет на сайте
| Можно скачать Mono. Рантайм и компилятор - примерно 100 МБ. Здесь туториал по использованию. P.S.: никакого встроенного компилятора в Windows XP нет, ты что-то не так понял.
Как правильно задавать вопросы
Сообщение отредактировал -l33t-h4xx- - Пятница, 20 Июня 2014, 12:53 |
|
| |
-l33t-h4xx- | Дата: Пятница, 20 Июня 2014, 12:12 | Сообщение # 89 | Тема: Falco: Требуется повысить WOT. |
участник
Сейчас нет на сайте
| Цитата Фил ( ) Продались за полтинник. Лол. А почему бы и не продаться, раз покупают.
Как правильно задавать вопросы
|
|
| |
-l33t-h4xx- | Дата: Пятница, 20 Июня 2014, 11:58 | Сообщение # 90 | Тема: Несколько моих вопросов |
участник
Сейчас нет на сайте
| На чайники и микроволновки. Читай.
Как правильно задавать вопросы
|
|
| |
-l33t-h4xx- | Дата: Пятница, 20 Июня 2014, 11:36 | Сообщение # 91 | Тема: Вопрос-Ответ (C++) |
участник
Сейчас нет на сайте
| Какая сложная и глупая задача! Небольшой совет: мешать С-строки (массивы char'ов) со строками С++ (объекты string) - всегда плохая идея. Правда, иногда в некоторых библиотеках встречаются функции, которые требуют именно С-строки в качестве аргумента, но для таких случаев есть метод c_str().
Вот так я попытался написать (ideone). Заодно узнал про stringstream, и жизнь моя озарилась новым светом. Код #include <iostream> #include <sstream> #include <string> #include <cstring>
using namespace std;
void process (string line, string substring) { istringstream linestream(line);
int wordcount = 0; int matchcount = 0; string first;
// Ищем substring в каждом слове while (!linestream.eof()) { string word; linestream >> word; wordcount++;
if (word.find(substring) != string::npos) { matchcount++; if (matchcount == 1) first = word; } }
// Выводим согласно условию
if (matchcount == 0) { string reversedline = string(line.rbegin(), line.rend()); // ^ ^ ^ Жуткий на вид хак с итераторами, обращающий строку. // С ним лучше разобраться. cout << reversedline << endl; return; }
if (wordcount == matchcount) { cout << line << endl; return; } else // Не все слова имеют подстроку { cout << first << endl; return; } }
int main ( ) { while (!cin.eof()) { string line; getline(cin, line); process(line, "foo"); // Ищем "foo" } }
Как правильно задавать вопросы
|
|
| |
-l33t-h4xx- | Дата: Вторник, 17 Июня 2014, 12:20 | Сообщение # 92 | Тема: Набор в команду создания игр! |
участник
Сейчас нет на сайте
| Цитата EvilT ( ) так и не понял, что это значит? У нас в универе, когда мы чертежи в автокаде делали, это уверенно называлось 2D-моделированием.
Как правильно задавать вопросы
|
|
| | |
-l33t-h4xx- | Дата: Воскресенье, 15 Июня 2014, 12:28 | Сообщение # 94 | Тема: Считывание строк из файла |
участник
Сейчас нет на сайте
| Во-первых: ребята, вы намудрили! Во-вторых, несколько вопросов автору. 1. Какой язык? С или С++? Тебе предлагают решения на С++, хотя сам ты пишешь на С. Я бы с осторожностью отнёсся к решениям на другом языке, преподаватель может не вполне оценить самодеятельность. 2. В чём вообще заключается задача? Что значит "создать файл, содержащий сведения"? Какими средствами должен создаваться файл и в каком формате должны быть записи? Сформулируй условия почётче. 3. Если ты пишешь в файл массив структур, можно ли на самом деле этот файл построчно считывать? Как ты себе это представляешь?
Как правильно задавать вопросы
|
|
| |
-l33t-h4xx- | Дата: Четверг, 12 Июня 2014, 16:26 | Сообщение # 95 | Тема: Уроки Python3 с уклоном на геймдев |
участник
Сейчас нет на сайте
| Цитата vasua99 ( ) Одна - видеоверсия, а другая текстовая) Учить программировать по видео - это как учить рисовать по телефону.
Как правильно задавать вопросы
|
|
| |
-l33t-h4xx- | Дата: Четверг, 12 Июня 2014, 16:19 | Сообщение # 96 | Тема: C# |
участник
Сейчас нет на сайте
| Цитата Sergei_99 ( ) Мне нужно компилировать windows приложение Windows-приложения можно делать не только в редакторе форм (как я понимаю, затруднение кроется здесь). Разница между консольным и неконсольным приложениями условная. Глянь здесь.
Как правильно задавать вопросы
Сообщение отредактировал -l33t-h4xx- - Четверг, 12 Июня 2014, 16:19 |
|
| |
-l33t-h4xx- | Дата: Среда, 11 Июня 2014, 11:09 | Сообщение # 97 | Тема: Написание простого игрового движка |
участник
Сейчас нет на сайте
| А что ему помогать, он создал тему месяц назад и смылся.
Как правильно задавать вопросы
|
|
| |
-l33t-h4xx- | Дата: Вторник, 10 Июня 2014, 07:25 | Сообщение # 98 | Тема: Выбор что учить |
участник
Сейчас нет на сайте
| Цитата Ordan ( ) ява рулит) Я тоже так думал, пока не начал изучать её. Виртуальная машина медленная, дикий механизм аннотаций, без которых мой код не признают "хорошим стильным", анонимные классы компилируются в отдельные файлы (мне это плохо, я люблю использовать make), и ещё разные мелкие неудобства. То ли дело C#!
Как правильно задавать вопросы
Сообщение отредактировал -l33t-h4xx- - Вторник, 10 Июня 2014, 07:27 |
|
| |
-l33t-h4xx- | Дата: Понедельник, 09 Июня 2014, 07:50 | Сообщение # 99 | Тема: Вопрос-Ответ (C++) |
участник
Сейчас нет на сайте
| antonyvolkoff, для себя бы я, разумеется, сделал лучше. За пять минут все эти чудесные фичи не набросаешь, а мой велосипед, по крайней мере, будет какое-то время работать, пока разрабатываются более важные части программы. Со всеми вытекающими ограничениями, да.
Как правильно задавать вопросы
Сообщение отредактировал -l33t-h4xx- - Понедельник, 09 Июня 2014, 07:56 |
|
| |
-l33t-h4xx- | Дата: Воскресенье, 08 Июня 2014, 11:40 | Сообщение # 100 | Тема: Курсы на GCUP. |
участник
Сейчас нет на сайте
| Нет и не будет нормальных бесплатных курсов. "Курсы" пишут, как правило, дилетанты, желающие поделиться скудными знаниями, которые они приобрели из нормальных источников. Я сам этим занимался, поэтому точно знаю. Опытные программисты знают себе цену и не пишут курсов, и лучшее, что от них можно получить - маленькие советы и общие рекомендации. Это правильно, это самое хорошее приложение опытного программиста к неопытному. Для всего остального есть учебники и документация или преподаватели.
Единственная хорошая черта бесплатных онлайн-курсов - иногда отдельные идеи в них объясняются проще. Но после усвоения этих идей возвращаться к курсам обычно нет смысла, к тому же многие авторы нередко пишут в них умозрительную ересь, от которой новичку лучше держаться подальше.
Как правильно задавать вопросы
Сообщение отредактировал -l33t-h4xx- - Воскресенье, 08 Июня 2014, 11:44 |
|
| |
|