Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
Другие темы раздела
C++ Проверить массив на инициализированность https://www.cyberforum.ru/ cpp-beginners/ thread611373.html
std::list<my_type> c ; при с.push_back(my_type что_угодно) ; нужно скопировать значения одного массива А в массив В ,при этом не известно было ли в массиве В что-нибудь до этого ,закинутого туда пользователем .0xcdcdcdcd сейчас адрес ,но там будет что угодно в релизной версии,коли правильно я понял .
C++ В чём отличие switch и if?
Препод задал вопрос, я ответил, то что switch использует только int и char, возвращается не логическое выражение, а целое... Она спросила, какие ещё есть отличия
C++ Объявление класс в нескольких файлах Можноли как-то объявление одного класса разбить на несколько заголовочных файлов? Хочу создать класс, в котором основной функционал находится в одной паре *.h, *.cpp, а дополнительный в других. Что бы при написании программ можно было подключать нужный мне функционал и не компилировать лишнее. https://www.cyberforum.ru/ cpp-beginners/ thread611260.html C++ Нарисовал блок схему нужно проверить https://www.cyberforum.ru/ cpp-beginners/ thread611223.html
Рисую блок схему первый раз за 2 года.. вот код программы #include <windows.h> #include <string> #include <iostream> #include <iomanip> #include <fstream> #include <stdio.h> #include <conio.h> #include <stdlib.h>
Сравнение одночленов X со степенями C++
Здравствуйте. Есть задача: Дана запись многочлена (от переменной X) произвольной степени с целыми коэффициентами, причем его одночлены могут быть и не упорядочены по степеням X, а одночлены одной и той же степени могут повторяться, например: -8x^4-74x+8x^4+5-x^3 Требуется привести подобные члены в этом многочлене, после чего распечатать его по убыванию степеней X. Как я понимаю сначала...
C++ Найти целую часть суммы чисел Исходные данные: x=12 a=9,5 Найти целую часть суммы чисел G, I, U https://www.cyberforum.ru/ cpp-beginners/ thread611200.html
C++ Система линейных уравнений методом Гаусса с выбором главного элемента по столбцу не как не пойму что делают в прямом ходе каждый из For #include "stdafx.h" #include <iostream>//i/o #include <conio.h> //getch #include <cmath> //fabs, abs using namespace std; void ShowVector(int n, double * vec); void PryamoiHod(int n, double **a, double *b); https://www.cyberforum.ru/ cpp-beginners/ thread611196.html C++ Статитческие анализаторы
Какой лучшией статический анализатор который можно в торренте... или наоборот мож фриварные хорошие есть подскажите плиз
C++ Вычислить значение функции Составить программу для вычесления значений функции F(x) на отрезке с шагом h(3 варианта, используя цикл с постусловием, предусловием и со счетчиком). F(x)=(1-x2)(2+x) https://www.cyberforum.ru/ cpp-beginners/ thread611160.html C++ Список: связный список, в котором информация о книгах сортируется по убыванию стоимости. https://www.cyberforum.ru/ cpp-beginners/ thread611157.html
Друзья помогите с реализацией списка. Нужно запрограммировать связный список, в котором информация о книгах сортируется по убыванию стоимости.
Программа выдаёт ошибки C++
Здравствуйте. Помогите, пожалуйста, исправить. Программа в Visual C++ выдаёт 2 ошибки и 4 предупреждения в заголовочном файле:1>.\api.cpp(38) : warning C4551: в вызове функции отсутствует список аргументов 1>.\api.cpp(60) : warning C4129: D: неизвестная escape-последовательность 1>.\api.cpp(93) : warning C4996: 'fopen': This function or variable may be unsafe. Consider using fopen_s instead. To...
C++ c++ после c# https://www.cyberforum.ru/ cpp-beginners/ thread611121.html
Всем привет! Отучился курс по языку c#, с c++ не знаком. Подскажите, какую книгу читать, учитывая курс по языку c#
DU
1500 / 1146 / 165
Регистрация: 05.12.2011
Сообщений: 2,279
23.06.2012, 02:13 0

Вызов виртуальной функции по указателю - C++ - Ответ 3198712

23.06.2012, 02:13. Показов 7189. Ответов 30
Метки (Все метки)

Ответ

рассположение зависит от компилятора. чтобы узнать наверняка, нужно задиассемблировать строку получения указателя на type_info.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
 
class Base
{
public:
  virtual ~Base() {}
};
 
class Der : public Base
{
};
 
int main(int argc, char argv[])
{
  Der der;
  Base& rBase = der;
  const std::type_info* pTypeInfo = &typeid(rBase);
  std::cout << "address of typeinfo for " << pTypeInfo->name() << " = " << pTypeInfo << std::endl;
  return 0;
}
В студии эта строка в дизасме выглядит так:
// const std::type_info* pTypeInfo = &typeid(rBase);
00414772 mov eax,dword ptr [ebp-20h]
00414775 push eax
00414776 call @ILT+50(___RTtypeid) (411037h)
0041477B add esp,4
0041477E mov dword ptr [ebp-2Ch],eax

Т.е. идет вызов функции ___RTtypeid с передачей ей указателя на объект. Студия так же говорит, что она в файле rtti.cpp. Вот что-то похожее нашел тут:
http://code.google.com/p/ontl/... .cpp?r=741
Вот кому нужно - попробуйте разобратся. Код достаточно хитрый. Наверно из-за того, что нужно учитывать всякие множественные наследования + всякие другие провреки

Вернуться к обсуждению:
Вызов виртуальной функции по указателю C++
1
Заказать работу у эксперта
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
23.06.2012, 02:13
Готовые ответы и решения:

Вызов виртуальной функции по нулевому указателю
struct A { int sum1(int a, int b) { return a+b; } virtual int sum2(int a, int b) {...

Вызов функции по указателю
#include &quot;main.h&quot; void* samp; unsigned char keyact = 0x30; void attach(void*) { while...

Вызов функции по указателю из класса
Такой расклад. Допустим имеем код: #include &lt;iostream&gt; using namespace std; template &lt;class...

Вызов виртуальной функции
Здравствуйте, есть код: #include &lt;iostream&gt; using namespace std; class A{ public: virtual...

30
23.06.2012, 02:13
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
23.06.2012, 02:13
Помогаю со студенческими работами здесь

Не работает вызов виртуальной функции из класса потомка
Есть код: #include &lt;iostream&gt; #include &lt;vector&gt; #include &lt;list&gt; #include &lt;algorithm&gt; #include...

Вызов виртуальной функции через указатель на базовый класс
Всем привет! Помогите пожалуйста разобраться с вызовом виртуальной функции в программе. В моей...

Вызов виртуальной функции vs несколько dynamic_cast подряд: что быстрее?
Нужно максимально оптимизировать программу вот и пал выбор: лучше сделать чтобы вызывались...

Вызов виртуальной функции, определённой в дочернем классе, через указатель на базовый класс
Как вызвать виртуальную функцию, определённую в дочернем классе, через указатель на базовый класс?...

0
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru