10 / 10 / 1
Регистрация: 09.09.2013
Сообщений: 53
1

виртуальные функции

11.12.2013, 15:09. Показов 373. Ответов 1
Метки нет (Все метки)

Добрый день. Начал изучать виртуальные функции и столкнулся с проблемой. Не могу перегрузить функцию. Объясните что не так и как нужно:
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
40
#include "stdafx.h"
#include <iostream>
 
using namespace std;
 
class Bass
{
    public:
        virtual int fun(int K)
        {
            x=1+K;
            return x;
        }
    private: int x;
};
 
class Bass2:public Bass
{
    public:
        virtual int fun(int K, int T)
        {
            x=1+K+T;
            return x;
        }
    private: int x;
};
 
 
    int main()
 
    {
                
        Bass *p;
        Bass obj;
        Bass2 obj2;
        cout<<p->fun(1);
        p=&obj2;
        cout<<p->fun(1,1);
        return 0;
    }
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
11.12.2013, 15:09
Ответы с готовыми решениями:

Виртуальные и чисто виртуальные функции
Чем они отличаются?? если можно, с примерами. И как из виртуальной функции сделать чисто...

Виртуальные функции.
Приветствую всех. Дана такая программа (на самом деле она больше и сложнее, но структура и проблема...

Виртуальные функции
Пытаюсь понять что это такое но не понимаю. Может есть какие то болие понятные примеры , а то то...

Виртуальные функции в С++
Здравствуйт. Помогите осмыслить доконца вирт. ф-ции. После прочтения источников я собрал...

1
583 / 386 / 216
Регистрация: 20.01.2013
Сообщений: 1,169
11.12.2013, 16:30 2
Не могу перегрузить функцию
Есть понятие перегрузка и переопределение.
Вы переопределяете(затеняете) функцию базового класса новой функцией.
Пример
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
40
41
42
#include <iostream>
 
class Bass
{
    public:
        virtual int fun(int K)
        {
            x=1+K;
            return x;
        }
    private: int x;
};
 
class Bass2:public Bass
{
    public:
        int fun(int K)//перегруженная базового класса
        {
            x=1+K+100;
            return x;
        }
        
         int fun(int K, int T)//обьявленная новая с таким же именем но другими параметрами
        {
            x=1+K+T;
            return x;
        }
    private: int x;
};
 
 int main()
 {
    Bass b1;
    Bass2 b2;
    
    std::cout << b1.fun(5) << std::endl;//виртуальная ф-я базовый класс
    std::cout << b2.fun(10) << std::endl;//перегруженная функция базового класса 
    std::cout << b2.fun(10,5) << std::endl;//тоже имя ф-ии но другой набор параметров
    
     system("PAUSE");
     return 0;
 }
Добавлено через 2 минуты
Точнее я неправильно сказал вы не затеняеете а просто не реализуете

Добавлено через 54 секунды
Слово virtual не гарантирует того что обязательно нужно перегрузить функцию в классе наследнике.

Добавлено через 1 минуту
Если вы этого не сделаете будет использоваться функция базового класса.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
11.12.2013, 16:30

виртуальные функции
Помогите плиз с вертуальными функциями. Некак немогу понят вот эту задачу: переопределяемая...

Виртуальные функции
Создать базовый класс «молодой человек» и производные классы «студент», «военнослужащий», «военный...

Виртуальные функции
Какие происходят изменения, когда в классе объявляем одну или несколько функций виртуальными? ...

Виртуальные функции
Объясните, для чего необходимы виртуальные функции. Где их рационально использовать. P.S. Если...

Виртуальные функции С++
Задача: В классе хранится целое, и определяется виртуальная функция shownum(). Создать 2...

Виртуальные функции
Разработать программу с использованием наследования классов, реализующую классы: Земноводное(ареал...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.