Алексей
Алексей
У тебя в списке лежат указатели на объекты Point. Откуда typeid знать, что это на самом деле объекты - наследники?) что даёшь, то и получаешь
Катя
Так указатель у тебя на базовый класс
ну я хочу сделать интерфейс, который наследует классы и чтобы потом, в зависимости от того какое имя класса, просходили определенные действия
Алексей
Есть вариант, но вообще так лучше в продакшн не делать
Алексей
std::vector<Point*> points{new Point1(), new Point2()} for(auto& p : points){ if(Point1* p1 = dynamic_cast<Point1*>(p)){ ... } }
Алексей
Что-то типа такого
Алексей
Но, опять же, если тебе приходится делать так, значит, скорее всего ты что-то делаешь не так =) Почитай или посмотри про SOLID и Clean Code. Смысл приведения к базовому классу в том, чтобы пользователь имел возможность пользоваться объектом, не зная его фактический тип. Если приходится делать такого рода проверку - это плохо. С двумя типами еще ладно, но что, если у тебя будет 100 таких наследников? =)
Пашок🗽
Там ведь эксепшены будут летать при любом подобном касте (родитель->дитё) Явно абстракция неуместно применяется
Дмитрий
Как в двумерном массиве двигаться по диагонали?
Алексей
Как в двумерном массиве двигаться по диагонали?
int[10][10] a; for(int i = 0; i < 10; ++i){ for(int j = 0; j < 10; ++j){ std::cout « a[i][j]; } }
Дмитрий
Не, если не из начальной, а из произвольной
Дмитрий
И можно ли все 4 диагонали в один цикл уместить
Борисов
а как-то возможно ему об этом рассказать?)
Можно как то так - https://ideone.com/dCqgDH Но это прям такое )) сомнительное))
Дмитрий
Мне просто нужно ходы ферзя описать на шахматной доске
Пашок🗽
Это еще с чего бы эксепшн? dynamic_cast возвращает указатель или nullptr
Не знаю за плюсы, но в любом случае это ворст практис
Пашок🗽
int[10][10] a; for(int i = 0; i < 10; ++i){ for(int j = 0; j < 10; ++j){ std::cout « a[i][j]; } }
У тебя не двигается по диагонали) тупо обход. Для диагонали один цикл юзается
Алексей
int x, = 5, y = 5 int step = 3 1. x+step, y+step 2. x-step, y+step 3. x-step, y-step 4 x+step, y-step
Пашок🗽
Мне просто нужно ходы ферзя описать на шахматной доске
У тебя положение фигуры равно a[i][j] , тогда возможные ходы описываются a[i+n][j+n] где n целое число, на i+n И j+n <= размера доски
Алексей
ходим на три клетки по диагонали во все четрые стороны
Дмитрий
Сейчас покажу пример цикла, подкиньте рецензию на неё, сейчас дописать не могу, и следовательно проверить, но мб вы какие-то ошибки увидите
Дмитрий
Там со всеми ходами
Дмитрий
int counter = 0; for(int i = 0; i < n; i++) { if(board[x][i] == 1) counter++; if(board[i][y] == 1) counter++; } for(int i = 0; i < n - Math.Abs(x-y); i++) { if(board[max(x-y, 0)+i][max(y-x, 0)+i] == 1) counter++; } for(int i = 0; i < n - Math.Abs(x-n+y+1); i++) { if(board[max(x-n+y+1, 0)+i][min(y+x, n-1)-i] == 1) counter++; }
Катя
С именами классов - это не очень
а если не именами? то как? просто нехочется ссылки передавать(
Marchal
Товарищи, помогите с выбором пк, срочно нужна помощь
Катя
ну каждый раз будет new Point1 и new Point2
Борисов
а если не именами? то как? просто нехочется ссылки передавать(
Что-то такое не подойдет ? class Base { public: void foo() { ... // некие действия bar(); } void bar() = 0; }; class Derived : public Base { public: void bar() { ... // некие действия } };
Алексей
ну каждый раз будет new Point1 и new Point2
Там не будет создаваться новых объектов, только указатель - 4 байта. Вообще за память не беспокойся
Алексей
А если тебе надо узнать, какой тип, то проверять по имени класса - уж точно плохая затея) Так что лучше варианта, чем тебе Сергей предложил, не найдешь
Катя
Что-то такое не подойдет ? class Base { public: void foo() { ... // некие действия bar(); } void bar() = 0; }; class Derived : public Base { public: void bar() { ... // некие действия } };
нет( Вообще я делаю игру, и у меня есть класс игрока и класс врагов(3 разных), которые объединины одним интерфейсом, и я хочу устроить им бой, хочу сделать отдельный класс под бой и сделать в нем список с указателями на интерфейс, чтобы, если игрок пересекся с определенным врагом, он его убил. не хочу передавать ссылки на классы каждого врага и игрока, потому что это будет не красиво(
Борисов
Ну или я что-то не понимаю)
Катя
То есть мне не надо делать отдельный класс для боя, можно это просто прописать в классе у игрока и врагов?
Борисов
То есть мне не надо делать отдельный класс для боя, можно это просто прописать в классе у игрока и врагов?
На словах сложно понять. Если есть возможность, скинь наработки на github. Может более предметные советы появятся))
Пашок🗽
То есть мне не надо делать отдельный класс для боя, можно это просто прописать в классе у игрока и врагов?
Те методы, которые ты хочешь чтобы были общие должны быть и у родителя, и переопределены у наследников. Тогда метод figth допустим будет у каждого из врагов наносить разный урон
depressed
Java или Python?
Сидредин
depressed
Ок
amir
go lang
Сидредин
Ок
но это не точно
Anonymous
Обработку форм можно делать на любом япе?
Сидредин
Anonymous
Здравствуйте
Anonymous
Я новичок в сфере программирование
Anonymous
Для изучение бекенд разработчик мне с чего нужно начать
Сидредин
PHP, Python, Java и другие. Первые два одни из самых лёгких
Сидредин
Посмотри, каких вакансий в твоём городе больше всего. Обычно это PHP
Anonymous
А вы знаете какие то хорошие книги по пайтон?
Kovis
Всем здравия) подскажите где или кто научит програмировать на петоне
Anonymous
А вы в каком сфере программирующие?
Сидредин
А вы знаете какие то хорошие книги по пайтон?
Я по видеокурсам его учил. Книг не знаю. Начал читать Лутца, понравилась книга, но я не знаю, как там дальше
Anonymous
Посмотри, каких вакансий в твоём городе больше всего. Обычно это PHP
В моём городе бекенд разработчик востребованный
Anonymous
Ага понятно
Anonymous
Значить можно по видеороликов в Ютубе учить
Anonymous
Это Python, PHP и JavaScript
Сидредин
Значить можно по видеороликов в Ютубе учить
Да. Но дальше надо много практиковаться (писать код) и читать тоже хотя бы иногда. Мне лично этот плейлист очень понравился https://www.youtube.com/watch?v=VXYyJX5qMiQ&list=PLlWXhlUMyooaeSj8L8tVVbtUo0WCO4ORR&ab_channel=%D0%9E%D0%BB%D0%B5%D0%B3%D0%9C%D0%BE%D0%BB%D1%87%D0%B0%D0%BD%D0%BE%D0%B2 У этого автора есть и другие отличные плейлисты
Anonymous
Спасибо за поддержку 🙏🙏
Сидредин
👍
Anonymous
Досвидания 👋👋👋
Oleg
🆚 Django vs Flask #django #vs #flask | Гайды по Python
Hvorost
Такой вопрос Написал hello world Собираюсь залить на гитхаб. В коде сайта будет один файл .png формата Файл .png формата взят из Википедии. Если я опубликую этот код и он превратится в сайт, может ли правообладатель этого лого удалить сайт/лого Логотип игры Сталкер.
Azamat
🆚 Django vs Flask #django #vs #flask | Гайды по Python
Я бы ещё отметил, что flask более гибкий, в отличий от джанги, которая заставляет юзать свою орм и свои некоторые модельки
Виталий
Ребят, может поможет кто? Вот условие, код и результат. Она работает, но без функции. Ф-цию нужно вводить для вычисления процента. Но если просто ввести 2 скрин, то ничего не будет, ибо p и остальные переменные не инициализированы, а если их объявлять, то это уже главная программа получится... Вот в чем собственно проблема: Как тут сделать функцию для вычисления процента без лишней инициализации?
Сергей
Я бы ещё отметил, что flask более гибкий, в отличий от джанги, которая заставляет юзать свою орм и свои некоторые модельки
В конечном итоге ты прикрутишь во фласке орм, будешь юзать шаблоны, и получишь в итоге джанго, но не из коробки
Сергей
spasibo
nezachto