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

Производный класс. Перегрузка << (cout). - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ среднее арифметическое строк и столбцов http://www.cyberforum.ru/cpp-beginners/thread430858.html
Отзовитесь, ЭКСПЕРТЫ!!! Вот условие задачи: сред. арифм. строк и столбцов. Если макс. сред. арифм. строк больше сред. арифм. столбцов - обменять элементы первой строки с последней , в противном...
C++ Исправить ошибку в программе. #include<iostream> #include <math.h> #include <time.h> #include <iomanip> using namespace std; int main() {double A; int i,j; srand (time(NULL)); for(i=0;i<3;i++) http://www.cyberforum.ru/cpp-beginners/thread430856.html
Нахождение логарифма. C++
Есть такая программка для нахождения функции log10(a+b) разложением в ряд ,с точностью eps, и сравнения полученного значения с точным. Внимание вопрос:): правильно ли все написано? Меня смущает то...
C++ Компилятор не видит функции graphics.h
В папку include включил файл graphics.h. В коде подключил этот файл (#include <graphics.h>), пытаюсь использовать функции оттуда, но компилятор выдаёт ошибку: "undefined reference to...
C++ Создать классы, имеющие элементы-данные и функцию печати. http://www.cyberforum.ru/cpp-beginners/thread430825.html
Да-да, я полный дуб в С++, но лабораторные как-то надо сдать..(( Создать классы, имеющие элементы-данные и функцию печати. ТОВАР (имя – char *, количество – int, стоимость – float)
C++ нужна програмка нужна програмка, которая считывает текст из файла и выводит на экран только предложения, не содержащие запятых. подробнее

Показать сообщение отдельно
DU
1483 / 1129 / 45
Регистрация: 05.12.2011
Сообщений: 2,279
18.01.2012, 22:51
еще раз попробую объяснить
вот какой у вас оператор <<
C++
1
2
3
4
5
6
std::ostream & operator<<(std::ostream & os, const Port & p)
{
        os << p.brand << ", " << p.style << ", " << p.bottles;
 
        return os;
}
Это свободная ф-ия и она не вызывает никаких виртуальных методов у класса Port. Она всегда будет выводить поля просто порта, даже если p ссылается на объект VintagePort.
Т.к. у вас массив указателей на объекты типа порт, то тип выражения *mass[1] - const Port&;
Поэтому всегда будет вызываться оператор << для порта а не для винтажного порта, даже если там указатель на винтажный порт.

Если вы сделаете по примеру, который я написал выше, то у вас все заработает так, как вы хотите. Если p ссылается на винтажный порт, то позовется ф-ия печати винтажного порта (потому что она виртуальная и переопределена в винтажном порте)
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru