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

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

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

Показать сообщение отдельно
Пёс
228 / 76 / 4
Регистрация: 03.02.2013
Сообщений: 311
04.02.2013, 16:19
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
class A {
  A();
  ~A();
  void operator @ (const char* s) {}                      //убираете virtual
};
 
//этот класс использует оператор @ базового класса
class B : public A {
  B();
  ~B();
};
 
class C : public A {
  C();
  ~C();                                                              
  void operator @(const char* s) {                         //здесь тоже
    //ряд дополнительных действий
    //здесь хочу вызвать оператор @ базового класса
    A* pointerA = this;                    //создаём указатель на базовый класс, и помещаем туда адрес объекта класса C
    pointerA->operator @();             //вызываем operator @, который принадлежит базовому классу. (если бы стоял virtual, то вызвался оператор наследника)
  }
Добавлено через 4 минуты
Кстати!!! Вспомнил ещё кое что!

если не ошибаюсь, то сработает такая запись:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
class A {
  A();
  ~A();
  virtual void operator @ (const char* s) {}
};
 
//этот класс использует оператор @ базового класса
class B : public A {
  B();
  ~B();
};
 
class C : public A {
  C();
  ~C();
  virtual void operator @(const char* s) {
    //ряд дополнительных действий
    //здесь хочу вызвать оператор @ базового класса
    this->A::operator @(s);
  }
};
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru