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

Как вызвать оператор базового класса в наследнике? - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ пространство имен http://www.cyberforum.ru/cpp-beginners/thread778693.html
Здравствуйте! У меня вопрос...В си есть такая функция printf, которая аналогична функции С++ cout. Почему, когда нам необходимо напечатать, допустим строку, мы указываем пространство имен std::cout, а когда printf, то пространство имен не указываем?
C++ перевод действительных чисел Написать программу перевода действительных чисел из десятичной системы счисления в двоичную. Считаем что целая часть числа не превосходит 10 в 9 степени, а дробная отлична от нуля, но конечна и состоит не более чем из 3 цифр. Для перевода дробной части использовать алгоритм умножения на 2 до получения заданной точности (количества цифр в дробной части результата) В начале текста программы в... http://www.cyberforum.ru/cpp-beginners/thread778685.html
найти плошадь и катет прямоугольного треугольника C++
Помогите пожалуйсто найти площадь и катет у прямоугольного треугольника используя второй катет и гипотенузу.
C++ найти площадь ромба
Помогите. задание, ввести одну сторону ромба и диагональ
C++ Перевод из одной С.С. в другую http://www.cyberforum.ru/cpp-beginners/thread778617.html
Как можно организовать при помощи ОДНОЙ функции, в которую вводится само число и система счисления?
C++ Как получить состояние (release/debug) проекта? Возможно ли получить состояние (release/debug) проекта препроцессором? подробнее

Показать сообщение отдельно
silent_1991
Эксперт С++
4960 / 3036 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
04.02.2013, 16:39     Как вызвать оператор базового класса в наследнике?
А в чём проблема? Так же, как любой метод:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
#include <iostream>
 
class A
{
public:
    A()
    {
    }
    
    virtual ~A()
    {
    }
    
    virtual void operator+(const char* s)
    {
        std::cout << "A::operator+(" << s << ")" << std::endl;
    }
};
 
//этот класс использует оператор @ базового класса
class B : public A
{
public:
    B()
    {
    }
    
    virtual ~B()
    {
    }
};
 
class C : public A
{
public:
    C()
    {
    }
    
    virtual ~C()
    {
    }
    
    virtual void operator+(const char* s)
    {
        std::cout << "C::operator+(" << s << ")" << std::endl;
        
        A::operator+(s);
    }
};
 
int main()
{
    A *a1 = new A();
    A *a2 = new B();
    A *a3 = new C();
    
    *a1 + "hello";
    std::cout << "--------------------" << std::endl;
    *a2 + "hello";
    std::cout << "--------------------" << std::endl;
    *a3 + "hello";
    
    delete a1;
    delete a2;
    delete a3;
    
    return 0;
}
http://liveworkspace.org/code/LoqS$6
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru