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

Указатель на vtable - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Как пользоваться заголовочными файлами и использовать несколько исходных файлов? http://www.cyberforum.ru/cpp-beginners/thread1181128.html
Как пользоваться несколькими файлами cpp, и заголовками h , в Visual Studio WIN32 C++ Дайте пожалуйста инфу, или статью , как пользоваться несколькими файлами cpp Например если есть главный файл...
C++ Подсчитать количество согласных букв в файле Подсчитать количество согласных букв в файле F2 http://www.cyberforum.ru/cpp-beginners/thread1181110.html
Выполнить задание не используя библиотеку стандартных шаблонов. 1. Разработать класс «Упорядоченный список», C++
Выполнить задание не используя библиотеку стандартных шаблонов. 1. Разработать класс «Упорядоченный список», тип которого определяется заданием в п. a), предусмотрев в нем конструкторы...
Определить длину каждого слова строки, и если она четная, то вставить в середину слова "aa", иначе "а" C++
Помогите с программой, начал делать, ерунда какая то выходит.... #include<iostream.h> #include<stdlib.h> #include<conio.h> #include<string.h> #include<stdio.h> char a,b; int k=0,l; char...
C++ Функции с переменным числом параметров http://www.cyberforum.ru/cpp-beginners/thread1181050.html
Написать функцию max с переменным числом параметров, которая находит минимальное из чисел типа int или из чисел типа double, тип параметров определяется с помощью первого параметра функции. Написать...
C++ Описать структуру ОЗУ Добрый день ребята) Помогите написать Д\З. Описать структуру ОЗУ. 1.Сортировать по названию фирмы 2. Чистота 3. Объем подробнее

Показать сообщение отдельно
TheChosenOne
13 / 13 / 1
Регистрация: 13.09.2013
Сообщений: 113

Указатель на vtable - C++

19.05.2014, 18:10. Просмотров 422. Ответов 7
Метки (Все метки)

Итак,решил полазить в деббагере и "пощупать" как работают вирт. функции. И тут я заметил что в случае,если указатель на базовый класс указывает на адрес объекта базового класса,то указатель содержит один указатель на таблицу вирт. ф-й. Если же указатель на баз. класс содержит адрес объекта класса-наследника,тогда происходит что-то странное и он содержит еще кое-что. В общем,это на это надо посмотреть (скрины прикрепляю).Почему так происходит ?
Код:
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
#include <iostream>
using namespace std;
 
class Base
{
public:
    virtual void say()
    {
        cout << "Hello" << endl;
    }
    virtual void no()
    {
        cout << "No" << endl;
    }
};
 
class Derv:public Base
{
public:
    void say()
    {
        cout << "yep" << endl;
    }
 
};
 
 
int main()
{
 
    Base a;
    a.say();
    Derv b;
    b.say();
    Base* ptr = new Derv();
    ptr->say();
    ptr = new Base();
    ptr->say();
}
0
Миниатюры
Указатель на vtable   Указатель на vtable  
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru