С Новым годом! Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.55/11: Рейтинг темы: голосов - 11, средняя оценка - 4.55
10 / 10 / 9
Регистрация: 30.03.2016
Сообщений: 163
1

Разница между Slicing и Upcatsing

03.10.2016, 18:51. Показов 2024. Ответов 12
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Не как не могу понять какая разница между ними.
Разница между Slicing и Upcatsing? какая? и если можно дать пример к каждому из них
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
03.10.2016, 18:51
Ответы с готовыми решениями:

Разница между 0 и 00 ?
Как заставить программу различать 0 и 00 (ноль и два ноля, как в рулетке)? Вариант с заменой 00...

Разница между != и <=
Здравствуйте! Писал программу с использованием QuickSort и заинтересовала такая вещь: void...

Разница между С и С++
Если не брать во внимание объекты и классы, то разница состоит только лишь в cin, cout и директивах?

Разница между if else и else if
Привет, у меня возник &quot;нубский&quot; вопрос. Этот код, это же соркащенная версия нижнего? int...

12
Эксперт С++
1936 / 1048 / 109
Регистрация: 29.03.2010
Сообщений: 3,167
03.10.2016, 20:05 2

Не по теме:

ёж мотреж... это явно не из С++ для начинающих вопрос))


у меня встречный вопрос, а вам зачем? :-)
я если честно да же таких слов и не слышал за 10 лет на проде))) с большой долей вероятности знаю под другими названиями скорее всего...
0
10 / 10 / 9
Регистрация: 30.03.2016
Сообщений: 163
03.10.2016, 20:08  [ТС] 3
Maxim Prishchepa,
на недели экзамен, и в более старых тестах он очень часто встречаеться.
вот зачем.
ну так написано в книжках, про slicing я что то не чего не нашол.
0
Эксперт С++
1624 / 954 / 782
Регистрация: 06.02.2016
Сообщений: 2,452
Записей в блоге: 31
03.10.2016, 20:14 4
Может имели ввиду upcasting? Upcasting - преобразование вверх по иерархии. То есть от классов наследников к базовым классам.
1
Эксперт С++
1936 / 1048 / 109
Регистрация: 29.03.2010
Сообщений: 3,167
03.10.2016, 20:16 5
Лучший ответ Сообщение было отмечено Timama как решение

Решение

ну если верить гуглу всемогущему, то upcasting:

class B : A
class C : A

C++
1
2
3
4
5
6
7
void someF(A &) { ... }
 
B b();
C c();
 
someF(b);
someF(c);

а вот Slicing

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
struct A
{
    A(int a) : a_var(a) {}
    int a_var;
};
 
struct B : public A
{
    B(int a, int b) : A(a), b_var(b) {}
    int b_var;
};
 
B &getB()
{
    static B b(1, 2);
    return b;
}
 
int main()
{
    // Normal assignment by value to a
    A a(3);
    a = getB();
    // a.a_var == 1, b.b_var not copied to a
 
    B b2(3, 4);
    A &a2 = b2;
    // Partial assignment by value through reference to b2
    a2 = getB();
    // b2.a_var == 1, b2.b_var == 4!
 
    return 0;
}
оба с наследованием термина связаны, первый позволяет объекты кастить к паренту, а второй говорит, что у парента и у чаилда разные конкретные объекты внутри храняться
1
10 / 10 / 9
Регистрация: 30.03.2016
Сообщений: 163
03.10.2016, 20:19  [ТС] 6
Peoples, Maxim Prishchepa,
Upcasting это я знаю, но вот Slicing что такое.
0
Эксперт С++
1624 / 954 / 782
Регистрация: 06.02.2016
Сообщений: 2,452
Записей в блоге: 31
03.10.2016, 20:20 7
Timama,
Цитата Сообщение от Maxim Prishchepa Посмотреть сообщение
а второй говорит, что у парента и у чаилда разные конкретные объекты внутри храняться
0
Эксперт С++
3225 / 1752 / 436
Регистрация: 03.05.2010
Сообщений: 3,867
04.10.2016, 06:31 8
Цитата Сообщение от Maxim Prishchepa Посмотреть сообщение
я если честно да же таких слов и не слышал

Не по теме:

:D Жжете! Ну, что слова "также" и "тоже" иногда пишут раздельно - это еще можно объяснить тем, что у них есть раздельные аналоги с другим значением. Но вот чтобы слово "даже" писали раздельно!
Видимо, на очереди слова "дюже", "иже" и "уже"!

0
6045 / 2160 / 753
Регистрация: 10.12.2010
Сообщений: 6,005
Записей в блоге: 3
04.10.2016, 08:39 9
Цитата Сообщение от Timama Посмотреть сообщение
но вот Slicing что такое
Вы видимо плохо проанализировали код, написанный Maxim Prishchepa.
Пусть у нас есть класс В, который является наследником класса А. В общем случае, класс В обладает всеми свойствами класса А (данными и методами, т.к. не может скрыть методы класса А, а только переопределить) плюс некими своими. Слайсом объекта класса В будет являться объект класса В с отброшенными свойствами класса В. То есть результатом слайса всегда будет объект класса А. По простому -- это присваивание объекта производного класса базовому. Что вам и демонстрирует код Maxim Prishchepa.
0
19409 / 10028 / 2443
Регистрация: 30.01.2014
Сообщений: 17,678
04.10.2016, 09:53 10
Timama, про Slicing (Срезку) можно почитать в книге "Стандарты программирования на C++", правило 54.
0
Maxim Prishchepa
04.10.2016, 10:06
  #11

Не по теме:

Цитата Сообщение от Mr.X Посмотреть сообщение
Жжете! Ну, что слова "также" и "тоже" иногда пишут раздельно - это еще можно объяснить тем, что у них есть раздельные аналоги с другим значением. Но вот чтобы слово "даже" писали раздельно!
Видимо, на очереди слова "дюже", "иже" и "уже"!
Grammar_nazi detected...
вам ехать или шашечки? ;-)

0
Эксперт С++
3225 / 1752 / 436
Регистрация: 03.05.2010
Сообщений: 3,867
04.10.2016, 10:39 12
Цитата Сообщение от Maxim Prishchepa Посмотреть сообщение
вам ехать или шашечки? ;-)

Не по теме:

:D Ездить надо по правилам, а они требуют писать сообщения на русском:pardon:
Да и, честно говоря, безграмотность сейчас приобретает просто ужасающие масштабы. Какие ж мы будем интилигэнты, если по-русски писать не будем уметь?

0
Maxim Prishchepa
04.10.2016, 10:42     Разница между Slicing и Upcatsing
  #13

Не по теме:

Цитата Сообщение от Mr.X Посмотреть сообщение
Ездить надо по правилам, а они требуют писать сообщения на русском
Да и, честно говоря, безграмотность сейчас приобретает просто ужасающие масштабы. Какие ж мы будем интилигэнты, если по-русски писать не будем уметь?
я на английском чаще пишу чем на русском ;-)
ну и не все на форуме русские, я вот например хохол триклятый, хоть и всю жизнь себя считаю русским ;)
так что... тема плавно переходит в "флудилку" ;-)

0
04.10.2016, 10:42
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
04.10.2016, 10:42
Помогаю со студенческими работами здесь

Разница между --f и f--
Не понимаю, читал, что разницы между --f и f-- вообще никакой нет, но при компиляции программы...

В чем разница между [] и * ?
Думал, что ни в чем, но когда попытался сделать так: (в файле 1) char lc; в файле 2: extern...

В чем разница между X x; и X x()?
Корректный ли этот ответ?

вчем разница между с++ и ++с
Не как него могу понять в чем разница между с++ и ++с ? с - счетчик. просто пример: int main() {...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
Книги и учебные ресурсы по C#
InfoMaster 08.01.2025
Базовые учебники и руководства Одной из лучших книг для начинающих является "C# 10 и . NET 6 для начинающих" Эндрю Троелсена и Филиппа Джепикса . Книга последовательно раскрывает основные концепции. . .
Что такое NullReferenceEx­­­ception и как исправить?
InfoMaster 08.01.2025
NullReferenceException - одно из самых распространенных исключений, с которым сталкиваются разработчики на C#. Это исключение возникает при попытке обратиться к членам объекта (методам, свойствам или. . .
Что такое Null Pointer Exception (NPE) и как это исправить?
InfoMaster 08.01.2025
Null Pointer Exception (NPE) - это одно из самых распространенных исключений в Java, которое возникает при попытке использовать ссылку на объект, значение которой равно null. Это исключение относится. . .
Русский язык в консоли C++
InfoMaster 08.01.2025
При разработке программ на C++ одной из частых проблем, с которой сталкиваются русскоязычные программисты, является корректное отображение кириллицы в консольных приложениях. Эта проблема особенно. . .
Telegram бот на C#
InfoMaster 08.01.2025
Разработка ботов для Telegram стала неотъемлемой частью современной экосистемы мессенджеров. C# предоставляет мощный и удобный инструментарий для создания разнообразных ботов, от простых. . .
Использование GraphQL в Go (Golang)
InfoMaster 08.01.2025
Go (Golang) является одним из наиболее популярных языков программирования, используемых для создания высокопроизводительных серверных приложений. Его архитектурные особенности и встроенные. . .
Что лучше использовать при создании класса в Java: сеттеры или конструктор?
Alexander-7 08.01.2025
Вопрос подробнее: На вопрос: «Когда одновременно создаются конструктор и сеттеры в классе – это нормально?» куратор уточнил: «Ваш класс может вообще не иметь сеттеров, а только конструктор и геттеры. . .
Как работать с GraphQL на TypeScript
InfoMaster 08.01.2025
Введение в GraphQL и TypeScript В современной разработке веб-приложений GraphQL стал мощным инструментом для создания гибких и эффективных API. В сочетании с TypeScript, эта технология. . .
Счётчик на базе сумматоров + регистров и генератора сигналов согласования.
Hrethgir 07.01.2025
Создан с целью проверки скорости асинхронной логики: ранее описанного сумматора и предополагаемых fast регистров. Регистры созданы на базе ранее описанного, предполагаемого fast триггера. То-есть. . .
Как перейти с Options API на Composition API в Vue.js
BasicMan 06.01.2025
Почему переход на Composition API актуален В мире современной веб-разработки фреймворк Vue. js продолжает эволюционировать, предлагая разработчикам все более совершенные инструменты для создания. . .
Архитектура современных процессоров
inter-admin 06.01.2025
Процессор (центральный процессор, ЦП) является основным вычислительным устройством компьютера, которое выполняет обработку данных и управляет работой всех остальных компонентов системы. Архитектура. . .
История создания реляционной модели баз данных, правила Кодда
Programming 06.01.2025
Предпосылки создания реляционной модели В конце 1960-х годов компьютерная индустрия столкнулась с серьезными проблемами в области управления данными. Существовавшие на тот момент модели данных -. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru