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

Виртуальные функции - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Как сделать автоматическое обновление http://www.cyberforum.ru/cpp-beginners/thread922611.html
Здравствуйте! Есть программа с функцией обновления через интернет. Проверка обновления и само обновление происходит по нажатию на кнопку. А как сделать проверку обновления при запуске программы? Код обновления взят из http://www.cyberforum.ru/cpp-builder/thread245432-page2.html
C++ Движение змейки Никак не получается сделать движение змейки с последующим присоединением элементов к ней при съедании яблока. Помогите пожалуйста!!! #include <stdio.h> #include <stdlib.h> #include <conio.h> #include <windows.h> #include <time.h> #include <iostream> #include <string> http://www.cyberforum.ru/cpp-beginners/thread922593.html
C++ std::map и перегрузка оператора
решил освоить стандартные контейнеры и очередь за "map" нахожу на http://en.cppreference.com/w/cpp/container/map замороченный код, сокращаю его, чтоб читалось, работает. Но как? Здесь по-видимому перегрузка << на на что? и как она реализована? с помощью шаблона...это меня застопорило...какие то Compare, Allocator #include <iostream> #include <map> // A specialization for Key strings...
C++ Наследование статической переменной
есть класс с статистическим полем я от него "произвожу" два потомка. у всех этик классов будет одно общее поле(переменная) или же у каждого своё?
C++ перевести программу из паскаля в с++ (для среды Borland C++). Дан массив размера N. Осуществить циклический сдвиг элементов массива влево на одну http://www.cyberforum.ru/cpp-beginners/thread922570.html
Помогите пожалуйста перевести программу из паскаля в с++(для среды Borland C++) Условие:дан массив размера N. Осуществить циклический сдвиг элементов массива влево на одну позицию (при этом АN перейдет в АN-1, АN-1 - в АN-2, А1 - в АN) прога: const maxSize=100; type Tarr=array of integer; var
C++ перевести программу из паскаля в с++ (для среды Borland C++). Дана матрица размера MxN. Поменять местами столбец с номером N и первый из столбцов Помогите пожалуйста перевести программу из паскаля в с++(для среды Borland C++) Условие:дана матрица размера MxN. Поменять местами столбец с номером N и первый из столбцов, содержащих только отрицательные элементы. Если требуемых столбцов нет, то вывести матрицу без изменений. прога: const maxSize=10; type Tmatrix=array of integer; var подробнее

Показать сообщение отдельно
Olivеr
 Аватар для Olivеr
411 / 407 / 13
Регистрация: 06.10.2011
Сообщений: 830
13.07.2013, 16:49     Виртуальные функции
Сравните два кода и результаты их работы:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
 
struct Foo
{
    virtual void func() { std::cout << "Foo::func()\n"; };
};
 
struct Derived: public Foo
{
    virtual void func() { std::cout << "Derived::func()\n"; };
};
 
int main()
{
    Foo *a = new Derived;
    a->func();
    return 0;
}
Derived::func()
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
 
struct Foo
{
    void func() { std::cout << "Foo::func()\n"; };
};
 
struct Derived: public Foo
{
    void func() { std::cout << "Derived::func()\n"; };
};
 
int main()
{
    Foo *a = new Derived;
    a->func();
    return 0;
}
Foo::func()
Таким образом, virtual перед функций заставляет вызывать ее "правильную версию".
 
Текущее время: 14:38. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru