Форум программистов, компьютерный форум CyberForum.ru

как реализовать перегрузку опрератора "="? - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Работа с файлами и строками. http://www.cyberforum.ru/cpp-beginners/thread154975.html
Прошу помочь с этой задачкой, ибо СИ дается почему-то сложнее Паскаля, а темы на файлы, по-моему, самые сложные. Очень нужно. В общем задание: Дан символьный файл f. Группы символов, разделенные пробелами(одним или несколькими) и не содержащие пробелов внутри себя, будем называть "словами". Удалить из файла все однобуквенные(например: "gggg","yy" ) слова и лишние пробелы. Результат записать в...
C++ Нарисовать квадрат Задача Написать программу, которая выводит на экран - следующую фигуру: ************* * * * * * * * * * * http://www.cyberforum.ru/cpp-beginners/thread154945.html
Реализация функции Substring с помошью указателей C++
Доброго времени суток! Решил реализовать функцию Substring в C++, с делал это так: char* SubString(char* str, int index, int length) { char resChar = ""; for(int j = index; j < (index + length); j ++) { char c ; wsprintf(c, "%c", str);
C++ Разработать прогу которая хранит инфу о школьниках и их оценках с помощью map
С++. Задача. Разработать прогу которая хранит инфу о школьниках и их оценках за 5 экз. в виде отображения (map). Каждый эл-т отображения должен иметь след. вид: ключ - фамилия ученика, значение - набор оценок за 5 экзов. Собственно, понять бы как записать массив в значение для ключа... #include <iostream> #include <string> #include <map> int main() {
C++ Написать программу просмотра на экране длинных текстовых файлов http://www.cyberforum.ru/cpp-beginners/thread154857.html
Написать программу просмотра на экране длинных текстовых файлов. Имя просматриваемого файла должно передаваться в программу в качестве параметра, читаемого с клавиатуры.
C++ Про С++ Вот вопрос... В С++ довольно большой синтаксис. В одной СТЛ только сколько всего. Вопрос к опытным людям, вы это все запоминаете? Или же смотрите в справочник, когда нужно? Или же практикуетесь и поэтому все входит в голову на автомате? подробнее

Показать сообщение отдельно
CyBOSSeR
Эксперт C++
 Аватар для CyBOSSeR
2293 / 1663 / 86
Регистрация: 06.03.2009
Сообщений: 3,675
22.07.2010, 00:34     как реализовать перегрузку опрератора "="?
Цитата Сообщение от CheshireCat Посмотреть сообщение
хитрый трюк
Я бы не назвал это трюком, просто выглядит довольно непривычно.
В общем случае, если необходимо не переопределить поведение оператора присваивания (что весьма мало вероятно), а дополнить, нужно как раз таки использовать данный прием. Это позволит независимо изменять реализацию оператора в базовом и производным классе, т.е. каждый из классов будет ответчать за те поля, которые были им добавлены.

В продолжении темы, в конструкторе копирования производного класса также нужно вызывать конструктор копирования базового:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
class Base {
public:
  Base(const Base& other) {
    //...
  }
};
 
class Derived : public Base {
public:
  Derived(const Derived& other)
  : Base(other) {
     // ...
  }
};
Опять же каждый класс должен отвечать за копирование только добавленных им полей.
 
Текущее время: 09:36. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru