С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.78
RocBoy-D
32 / 31 / 7
Регистрация: 10.03.2012
Сообщений: 362
#1

Использование перегруженного оператора ввода/вывода в поток базового класса для объекта производного класса - C++

19.11.2012, 14:18. Просмотров 1307. Ответов 3
Метки нет (Все метки)

Здравствуйте! Можно ли использовать перегруженный оператор ввода/вывода в поток из базового класса для объекта производного класса, если производный класс не содержит новых полей?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
class A {
     protected:
         int x;
     public:
        // Конструкторы и деструктор
        friend istream &operator >> (istream &, A &);
};
 
class B: public A {
      public:
         // Конструкторы и деструктор
};
 
int main ()
{
      B exemple ();
      
      cin >> exemple;   // Возможно ли такое?
 
      return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.11.2012, 14:18
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Использование перегруженного оператора ввода/вывода в поток базового класса для объекта производного класса (C++):

Указатель на объект базового класса и адрес объекта производного класса - C++
Пример кода: class Class1 { public: Class1(int x) { j = new int; *j = x; } ~Class1() {delete j;}

Перегрузка оператора >> для дочернего класса от базового виртуального класса - C++
Доброго вам времени суток! Программирую на С++ не давно, в связи с отсутствием должного времени на поиск ответа в глубинах учебников,...

Вызов метода производного класса через обращение к методу базового класса - C++
Добрый день. Изучаю основы ООП, наткнулся на проблему. Если создавать классы внутри main.cpp, то всё нормально. Если же создавать в...

Создание указателя типа базового класса на экземпляр производного класса - C++
Добрый день! Иногда видел коды, где создавался указатель типа базового класса на объект класса - наследника, для чего это может применяться?

Определить обработчик исключений на преобразование указателя базового класса на указатель производного класса - C++
Класс В является производным от класса А. Определить обработчик исключительной ситуации на преобразование указателя базового класса А на...

Вызов объектом базового класса функцию из производного класса! - C++
Как можно осуществить вызов или передачу значения в базовый класс для дальнейшего вычисления этого значения в производном классе. Вот...

3
vxg
Модератор
3188 / 1991 / 228
Регистрация: 13.01.2012
Сообщений: 7,712
19.11.2012, 15:13 #2
...да...
0
RocBoy-D
32 / 31 / 7
Регистрация: 10.03.2012
Сообщений: 362
19.11.2012, 17:39  [ТС] #3
vxg, запустил в Code Blocks - вроде все работает. Но на всех сайтах пишут, что дружественные функции и методы перегрузки операторов не наследуются
0
vxg
Модератор
3188 / 1991 / 228
Регистрация: 13.01.2012
Сообщений: 7,712
19.11.2012, 22:42 #4
дружественная функция и не может наследоваться - она же вообще вне класса. про перегрузку не понял - где она у вас? про то что работает - ссылка на производный класс приводится к ссылке на базовый класс и вызывается описанный вами оператор.
1
19.11.2012, 22:42
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.11.2012, 22:42
Привет! Вот еще темы с ответами:

Реализовать оператор= для присваивания объекта класса-потомка объекту базового класса - C++
Есть два класса A и B, причем класс B является потомком A. Как реализовать следующее: obj_A = obj_B и obj_B = obj_A? Добавлено через 9...

как сделать чтобы объект производного класса сам себя добавлял в список или массив указателей базового класса? - C++
я хотел так, но программа просто падает void Student::add(Base** head) { cout << "I here" << endl; this->setName(); //все...

Ошибка при использовании перегруженного оператора вывода в поток: no match for 'operator<<' - C++
Пытаюсь написать класс комплексных чисел, но не могу сделать вот что: #include &lt;iostream&gt; #include &quot;head.h&quot; using namespace std; ...

Конструкторы базового и производного класса - C++
class first { public: first(int a):first(a){} void Setfirst(int a){first=a;} int Getfirst(){return first;} private: ...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.