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

Как преобразовать указатель на класс к указателю на асбтрактный класс? - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ что такое for(;;) http://www.cyberforum.ru/cpp-beginners/thread818678.html
что значит цикл for(;;)?
C++ Простейший текстовый редактор стандартными средствами c++ Доброго времени суток. Есть задание написать простейший графический редактор. Наподобие блокнота в wnidows. Сделать его в визуальных средах не составляет особого труда. А мне бы хотелось написать все ручками. Так вот вопрос. Какими библиотеками для этого стоит пользоваться и с какой стороны лучше подойти к этой задаче. В гугле искал информацию, ничего толкового не нашел. Везде рассказывается про... http://www.cyberforum.ru/cpp-beginners/thread818672.html
Шифрование "Лозунговым методом" (кому интересно) C++
Вот работа была сделал -> делюсь:) #include <stdio.h> #include <conio.h> #include <string.h> #include <locale.h> //Шифрование лозунговым методом void uncodetext(char arr1, char arr2, char arr3); const int N = 100; char A="abcdefghijklmnopqrstuvwxyz", output, untext, A2="abcdefghijklmnopqrstuvwxyz";
Выражение с суммами C++
Необходимо посчитать выражение с 2-мя суммами a+Ʃ(2*l^3+3*l^2+1) 2+Ʃ(k^2+2) для l от 2 до n и k от 3 до m вот, что получилось у меня #include <stdio.h> #include <math.h> #define N 100 int main() {
C++ Подпрограммы в программе http://www.cyberforum.ru/cpp-beginners/thread818630.html
Добрый день! помогите пожалуйста добработать программу, что бы на начальном экране при запуске появлялось меню подпрограмм 1.titulnaia ramka 2.arifmeticheckie virazheniaя 3.vetvleniaя 4.massivi 5. matrichiя 6.rachet treugolnika 7.funkchia 8.exit
C++ Вычислить прощадь фигуры Как узнать площадь заштрихованной фигуры в C++ ? Необходимые данные ввести самостоятельно. подробнее

Показать сообщение отдельно
kravam
быдлокодер
 Аватар для kravam
1512 / 872 / 44
Регистрация: 04.06.2008
Сообщений: 5,271
01.04.2013, 16:03  [ТС]     Как преобразовать указатель на класс к указателю на асбтрактный класс?
Исследуем дальше. Оказывается через какой класс pr_0 или pr_1 находить указатель на base- большая разница

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 base* b;
 
 b= (pr_0*)p;
 printf ("%x\n", b);
 //То же что и
 b= (base*)(pr_0*)p;
 printf ("%x\n", b);
 
 //+++++++++++++++++++++++++++++++
 
 b= (pr_1*)p;
 printf ("%x\n", b);
 //То же что и
 b= (base*)(pr_1*)p;
 printf ("%x\n", b);
данные разнятся.

Если в base объявить функцию, а определить её в rez и потом вызвать, вот так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 base* b;
 
 b= (pr_0*)p;
 printf ("%x\n", b);
 
 b= (base*)(pr_0*)p;
 printf ("%x\n", b);
 b-> f(); 
 
 b= (pr_1*)p;
 printf ("%x\n", b);
 
 b= (base*)(pr_1*)p;
 printf ("%x\n", b);
 b-> f();
то всё ж таки функция будет вызвана одна и та же. Это наталкивает на мысль, что вроде как получать указатель на base есть разница, но вроде как и нет (тело f ведь одно и то же). Пусть каждый интерпретирует как хочет, я лишь даю голые факты.
 
Текущее время: 17:35. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru