Полиморфизм объектных переменных: смысл, преимущества использования

Заказать уникальный реферат
Тип работы: Реферат
Предмет: Программирование
  • 77 страниц
  • 0 + 0 источников
  • Добавлена 12.12.2014
400 руб.
  • Содержание
  • Часть работы
  • Список литературы
  • Вопросы/Ответы
-
Фрагмент для ознакомления

=сравнивает два типа данныхclass A a; class B b;if(typeid(a) != typeid(b)) { puts("Type are not equivalent"); } else{ puts("Type are equivalent");}name()возвращает имя классав виде текстовой строкиclass A a; class B b;puts(typeid(a).name()); // "class A" puts(typeid(b).name()); // "class B"2. Разработать класс объектов "Кафедра", включающий 2-3 элемента данных (название, число сотрудников, число предметов), конструктор, методы доступа к данным. Привести фрагмент кода, содержащего создание объекта и вызов методов доступа. Используемый язык - любой по выбору (C++, C#, Java, Delphi).using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace ConsoleApplication1{class Program {public static void Main(string[] args) {var chair = new Chair("Кафедра", 40, 50);string chairName = chair.GetName();int peopleCount = chair.GetPeopleCount();int lessonCount = chair.GetLessonCount();Console.WriteLine( "Накафедре '" + chairName+ "' работает " + peopleCount.ToString() + " сотрудников " + "и проводится " + lessonCount.ToString() + " предметов."); }public class Chair { #region Элементыданных// Названиеprivatestring_name; // Число сотрудниковprivate int _peopleCount; // Числопредметовprivate int _lessonCount; #endregion #region Методыдоступаpublic string GetName() {return _name; }public int GetPeopleCount() {return _peopleCount; }public int GetLessonCount() {return _lessonCount; } #endregion //Конструкторклассаpublic Chair(string name, int peopleCount, int lessonCount) { _name = name; _peopleCount = peopleCount; _lessonCount = lessonCount;} } }}

-

Вопрос-ответ:

Какие преимущества есть у полиморфизма объектных переменных?

Полиморфизм объектных переменных позволяет работать с разными типами данных через единый интерфейс. Это упрощает написание гибкого и расширяемого кода, так как можно использовать один и тот же метод для работы с разными объектами. Также это позволяет создавать более абстрактные и гибкие классы, которые могут работать с разными типами данных.

Что такое typeid в C++?

Тип данных typeid в C++ позволяет получить информацию о типе объекта во время выполнения программы. Он возвращает объект класса type_info, который содержит информацию о типе данных объекта. Это может быть полезно, например, для проверки типа объекта или для работы с полиморфными объектами.

Как получить имя класса с помощью typeid?

Для получения имени класса с помощью typeid в C++ необходимо использовать метод name класса type_info. Например, если у вас есть объект a типа A, чтобы получить имя класса, нужно написать typeid(a).name(). Этот код вернет имя класса A в виде текстовой строки.

Какие особенности работы с typeid есть в C++?

В C++ есть несколько особенностей работы с typeid. Во-первых, если объект является полиморфным, то typeid возвращает информацию о его настоящем типе, а не о типе указателя или ссылки, которыми он был объявлен. Во-вторых, typeid может выбросить исключение bad_typeid, если объект имеет нулевой указатель или если typeid применяется к ссылке на временный объект.

Для чего используется полиморфизм объектных переменных?

Полиморфизм объектных переменных позволяет использовать одну переменную для хранения объектов разных классов, что обеспечивает гибкость и удобство в программировании. Это позволяет обращаться к методам и свойствам объектов через общий интерфейс, не зависимо от их конкретного типа.

В чём состоит преимущество использования полиморфизма объектных переменных?

Преимущество использования полиморфизма объектных переменных заключается в возможности повышения гибкости и переиспользования кода. Благодаря полиморфизму, можно создавать общие интерфейсы, которые позволяют работать с разными типами объектов через одну переменную. Это упрощает программирование и позволяет легко заменять один объект другим, не меняя остальную часть кода.

Как сравниваются два типа данных при использовании полиморфизма объектных переменных?

Для сравнения двух типов данных при использовании полиморфизма объектных переменных используется функция typeid. Если типы данных не эквивалентны, то функция typeid возвращает разные значения для двух объектов или переменных. Если типы данных эквивалентны, то функция typeid возвращает одно и то же значение.

Как получить имя класса в виде текстовой строки?

Для получения имени класса в виде текстовой строки можно использовать функцию typeid::name. Она возвращает имя класса в виде константной строковой переменной, которую можно вывести на экран или использовать в программе.

Можно ли разработать класс объектов "Кафедра" с помощью полиморфизма объектных переменных?

Да, можно разработать класс объектов "Кафедра", используя полиморфизм объектных переменных. Для этого можно создать класс "Кафедра" с нужными элементами данных, такими как название, число сотрудников и число предметов. Затем можно использовать полиморфизм объектных переменных для работы с объектами этого класса через общий интерфейс, что обеспечит гибкость и удобство в программировании.