Пятница, 26 Апреля 2024, 20:56

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
Форум игроделов » Записи участника » -l33t-h4xx- [260]
Результаты поиска
-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:36 | Сообщение # 93 | Тема: Движок 3D, Java или C++ для РПГ
участник
Сейчас нет на сайте
Остальное от лукавого

Как правильно задавать вопросы
-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
Форум игроделов » Записи участника » -l33t-h4xx- [260]
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг