
Alex Фэils?︙
27.05.2016
04:48:43
Сам напарывался когда-т

grinchfox
27.05.2016
04:51:41
а можно forward декларации template классов ?

Alex Фэils?︙
27.05.2016
04:52:30
Вроде да
Друзья, не подскажете кроссплатформенного способа защиты от целочисленного переполнения при умножении двух чисел?

Google

Aldar
27.05.2016
20:06:20
использовать long long?

Alex Фэils?︙
27.05.2016
20:06:26
Нет

Aldar
27.05.2016
20:06:58
это нормально работает если числа в основном из диапазона int

Alex Фэils?︙
27.05.2016
20:07:20
Если ты умножишь два числа, которые будут размером в половину лонг лонга, у тебя будет переполнение

ivario
27.05.2016
20:07:33
Других идей нет

Alex Фэils?︙
27.05.2016
20:08:00
Я на x86 писал макрос с _asm jo

ivario
27.05.2016
20:08:58

Alex Фэils?︙
27.05.2016
20:13:33
смотря как ты ее напишешь
Но тут опять не х-платформенное
На втором собеседовании в интел я с сотрудниками решал задачу на асме

Google

Alex Фэils?︙
27.05.2016
20:14:33
Не успели, регламент кончился(
Они эту задачу вообще чуть ли не в конце дали
if (n > 0 && m > 0 && SIZE_MAX/n >= m) {
size_t bytes = n * m; ... /* allocate “bytes” space */
}

Andrei
27.05.2016
20:58:35
Ну да
Это единственное правильное с тз языка проверка на переполнение
Я на собеседовании такую же давал, только с суммой
Где-то 3-4 заданием по плюсам. Те в самом начале почти

Aldar
27.05.2016
21:00:24
Задайте вопросы для собеседования по плюсам

Alex Фэils?︙
27.05.2016
21:01:01
Ну да
Блин, я сам такую пижню делал, как я мог забыть..(

Aldar
27.05.2016
21:05:30
ок я начну с классики, что такое виртуальный деструктор, для чего нужен?

Alex Фэils?︙
27.05.2016
21:06:03
?

arisu
27.05.2016
21:06:07
чтобы о нем спрашивать.
чтобы деструктор правильно отрабатывал при приведении к базовому типу.
и не происходило частичного разрушения

? Snyp
27.05.2016
21:06:33
пиздец, понятий вагон
я так и не понял чем отличается виртуальная функция от базовой.

Alex Фэils?︙
27.05.2016
21:06:47

Google

arisu
27.05.2016
21:06:55

Alex Фэils?︙
27.05.2016
21:07:00

arisu
27.05.2016
21:07:25

Aldar
27.05.2016
21:07:26
Что значит при приведении к базовому типу7

? Snyp
27.05.2016
21:07:27

Alex Фэils?︙
27.05.2016
21:07:54

? Snyp
27.05.2016
21:07:55
Вот, ворпосы полетели
не я 1 такой

arisu
27.05.2016
21:08:15
это ж хорошо.

? Snyp
27.05.2016
21:08:20

arisu
27.05.2016
21:08:21
больше вопросов - больше ответов

Alex Фэils?︙
27.05.2016
21:08:36

arisu
27.05.2016
21:08:39

Alex Фэils?︙
27.05.2016
21:08:40

? Snyp
27.05.2016
21:08:45
это ж хорошо.
поугарать в особенности. когда ты сидишь такой серьезный и хочешь выяснить что к чему - и тут угар)

Alex Фэils?︙
27.05.2016
21:08:46

arisu
27.05.2016
21:09:02
унаследованные типы могут переопределить методы базового, но только те, которые в базовом виртуальные

Aldar
27.05.2016
21:10:17
вот допустим есть класс A, B наследник А

Alex Фэils?︙
27.05.2016
21:10:39

Google

Aldar
27.05.2016
21:10:40
я пишу A a = B();
так можно делать?

arisu
27.05.2016
21:11:35
отож.
B это частный тип от А
поэтому в обратную сторону приведение возможно

Admin
ERROR: S client not available

arisu
27.05.2016
21:12:29
и оперировать B можно как объектом типа А
в этом суть ООП даже

? Snyp
27.05.2016
21:12:48
это муть а не суть)

Aldar
27.05.2016
21:13:03
а если мы добавим в B новое поле int?

arisu
27.05.2016
21:13:42
да хоть десять.

Andrei
27.05.2016
21:14:01
только это слайсинг.

Aldar
27.05.2016
21:14:26
?

Andrei
27.05.2016
21:14:32
A a= B(); вообще довольно поганая конструкция, но даже если предположить что всё ок.

Aldar
27.05.2016
21:14:39
мы вам перезвоним

? Snyp
27.05.2016
21:14:47
?

Andrei
27.05.2016
21:14:47
после ; будет вызван деструктор B()

arisu
27.05.2016
21:15:18
а вот это неочевидно, кстати

Andrei
27.05.2016
21:15:23
Здесь будет просто копирование.
В любом случае.

Google

Сергей
27.05.2016
21:15:33

Aldar
27.05.2016
21:15:35
здесь будет копирование со срезкой

Andrei
27.05.2016
21:15:43
а потом деструктор
Так что да, здесь все-таки слайсинг есть.
Всё правильно сказал.

Aldar
27.05.2016
21:16:17
в общем верно работать либо с указателями либо с ссылками

arisu
27.05.2016
21:16:31
B b = B();
A& a = b;
так?

Alex Фэils?︙
27.05.2016
21:16:38
Блин, пока из элки вылезал, весь попкорн пропустил

Aldar
27.05.2016
21:16:42
да
тогда слайсинга нету

Andrei
27.05.2016
21:16:56

arisu
27.05.2016
21:17:08
да, я что-то совсем обжабился

Сергей
27.05.2016
21:17:10
Мда

arisu
27.05.2016
21:17:11
и обзмеился

Сергей
27.05.2016
21:17:15
Отправилось через сто лет

Andrei
27.05.2016
21:17:36