История развития хранилищ для нефти: Первые склады нефти появились в XVII веке. Они представляли собой землянные ямы-амбара глубиной 4…5 м...
Кормораздатчик мобильный электрифицированный: схема и процесс работы устройства...
Топ:
Особенности труда и отдыха в условиях низких температур: К работам при низких температурах на открытом воздухе и в не отапливаемых помещениях допускаются лица не моложе 18 лет, прошедшие...
Оценка эффективности инструментов коммуникационной политики: Внешние коммуникации - обмен информацией между организацией и её внешней средой...
Интересное:
Инженерная защита территорий, зданий и сооружений от опасных геологических процессов: Изучение оползневых явлений, оценка устойчивости склонов и проектирование противооползневых сооружений — актуальнейшие задачи, стоящие перед отечественными...
Средства для ингаляционного наркоза: Наркоз наступает в результате вдыхания (ингаляции) средств, которое осуществляют или с помощью маски...
Берегоукрепление оползневых склонов: На прибрежных склонах основной причиной развития оползневых процессов является подмыв водами рек естественных склонов...
Дисциплины:
|
из
5.00
|
Заказать работу |
Содержание книги
Поиск на нашем сайте
|
|
|
|
Для выполнения операций с объектами класса необходимо перегрузить для них операторы, соответствующие этим операциям.
Нельзя переопределить операторы «?:», «&», «.», «,», «->»
Также нельзя переопределить приоритеты операторов.
1 способ.Ввидеметодакласса
class A {
…
bool operator<(const A& rsh) {…}
…
}
2 способ.Внешне
bool operator<(const A& lsh, const A& rsh) {…}
Перегрузка оператора ++
Префиксная:
A&operator++() {
increment();
return(*this);
}
Постфиксная:
const A operator++(int) {
A temp=*this;
increment;
returntemp;
}
Какие методы и операторы необходимы для использования типа в качстве параметра стандартного шаблонного контейнера?


Ключевые слова virtual и const
В теме переопределения методов есть одна маленькая деталь, связанная с ис-пользованием ключевого слова virtual. Подклассами могут переопределяться все методы суперкласса, но vitual метод надо делать, чтобы суперкласс знал, что наследники могут переопределить этот метод. Ключевое слово virtual размещается в начале объявления метода.
Чтобы переопределить метод, достаточно снова объявить его в определении подкласса точно так, как он был объявлен в суперклассе. Новое определение этого метода необходимо разместить в файле реализации подкласса.
#include <iostream>
class A {
public:
int virtual get() {return 1;}
};
class B: public A{
public:
int get() {return 2;}
};
int main(){
B b;
A* a=&b;
Map<int, int> s;
std::cout<<a->get();
system("pause");
return 0;
}
Выведет 2; если уберем virtual, то выведет 1
Ключевое слово const применяется для:
Создания констант
Защиты переменных
(Такое преобразование обеспечивает определенную степень защиты переменных от изменения их значений со стороны других частей программного приложения.)
Использование const-ссылок
(Передавая функции ссылку, вы одним "выстрелом" убиваете сразу двух "зайцев": и копия не создается, и исходная переменная не будет подвергнута никаким случайным изменениям.)
Если ставим const перед «{» при перегрузке оператора, то это означает, что оператор будет работать только с константными объектами данного класса.
Что такое срезка?
Подклассы сохраняют свои переопределенные методы при обращении к ним посредством указателей или ссылок "суперклассового" типа. Но они теряют свою уникальность при приведении объекта к типу суперкласса.
Потеря переопределенных методов и данных подкласса называется расслоением.
A – родитель, B – ребенок. Aa=b. Тогда методы b не работают. Если A&a=b, то работают
Множественное наследование
Определить класс с несколькими родителями синтаксически очень легко. Для этого достаточно при объявлении имени класса перечислить все его суперклассы.
class Baz: public Foo, public Bar {
…
};
После перечисления нескольких родителей объект класса Bar будет обладать следующими характеристиками:
Объект класса Baz станет поддерживать public-методы и включать открытые члены данных обоих классов Foo и Bar.
Методы класса Baz будут иметь доступ к защищенным (protected) данным и методам обоих классов Foo и Bar.
Объект класса Baz можно привести либо к типу Foo, либо к типу Bar.
При создании нового объекта класса Baz будут автоматически вызваны конструкторы по умолчанию классов Foo и Bar, причем в порядке, в котором эти имена были перечислены в определении класса Baz.
При удалении объекта класса Baz будут автоматически вызваны деструкторы классов Foo и Bar, причем в порядке, обратном тому, в котором эти имена были перечислены в определении класса Baz.
Исключения
|
|
|
Историки об Елизавете Петровне: Елизавета попала между двумя встречными культурными течениями, воспитывалась среди новых европейских веяний и преданий...
Состав сооружений: решетки и песколовки: Решетки – это первое устройство в схеме очистных сооружений. Они представляют...
Двойное оплодотворение у цветковых растений: Оплодотворение - это процесс слияния мужской и женской половых клеток с образованием зиготы...
Таксономические единицы (категории) растений: Каждая система классификации состоит из определённых соподчиненных друг другу...
© cyberpediasu.com 2017-2026 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!