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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
bearwoolfs
15 / 15 / 1
Регистрация: 10.01.2011
Сообщений: 275
#1

Виртуальные методы - C++

12.10.2011, 23:41. Просмотров 364. Ответов 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
43
#include<iostream>
using namespace std;
 
class A
{
public:
 A();
 virtual ~A(){}
 virtual void One()const{cout<<"its ONE"<<endl;}
};
class B:public A
{
    public:
 B();
 virtual void One()const{cout<<"its TWO"<<endl;}
};
class C:public A
{
    public:
 C();
 virtual void One()const{cout<<"its THREE"<<endl;}
}; 
 
int main()
{
A* pt;
int choice,i;
for(i=0;i<3;i++)
{
    cout<<"enter choice"<<endl;
    cin>>choice;
    switch(choice)
    {
    case 1:pt=new A;
       break;
    case 2:pt=new B;
        break;
    case 3:pt=new C;
        break;
    }
}
    return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.10.2011, 23:41     Виртуальные методы
Посмотрите здесь:

Виртуальные методы - C++
...в голове не укладываются. Помогите кто может :confusion: У меня про них сложилось впечатление, что они только усложняют жизнь. Если...

Виртуальные методы - C++
Дан родительский класс Animal (поле кличка). И два наследованных от него класса-потомка: Cat (поле рост - h), Dog(поле рост - h)....

Виртуальные методы - C++
народ вот пример с виртуальными методами, и вывод этой программы class Ancestor { public: virtual void function1 () { cout...

виртуальные методы - C++
как вызвать виртуальный метод базового класса из наследуемого класса? struct A { virtual void vf() { printf(&quot;A&quot;); } ...

Виртуальные методы - C++
Всем доброго времени суток! Вопрос следующий. Как я могу функцией делать подмену виртуального метода у класса?

Виртуальные методы класса - C++
Скажите, зачем нужны виртуальные методы? Почему нельзя использовать стандартные? Спасибо.

Виртуальные методы в структурах - C++
Почему не рекомендуется, или, даже, запрещено использовать виртуальные методы в структурах? Добавлено через 1 минуту И почему тоже...

Наследование и виртуальные методы - C++
Начал разбираться с темой наследование и не совсем понимаю как наследуются виртуальные методы, конструкторы и деструкторы виртуальные и...

Виртуальные методы(теория) - C++
Здравствуйте уважаемые форумчане! В ходе обучения языку с++ возник вопрос непонимания назначения виртуальных методов. Попытался...

Наследование и виртуальные методы - C++
В описании задания буквой А) обозначается задание на базовый класс, а буквой Б) - на класс наследник, или класс, использующий класс А как...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
aeshes
440 / 203 / 13
Регистрация: 07.10.2011
Сообщений: 462
12.10.2011, 23:47     Виртуальные методы #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
43
44
45
46
47
#include<iostream>
using namespace std;
 
class A
{
public:
    A(){};
 virtual ~A(){}
 virtual void One()const{cout<<"its ONE"<<endl;}
};
class B:public A
{
        public:
            B(){};
 virtual void One()const{cout<<"its TWO"<<endl;}
};
class C:public A
{
        public:
            C(){};
 virtual void One()const{cout<<"its THREE"<<endl;}
}; 
 
int main()
{
A* pt;
int choice,i;
for(i=0;i<3;i++)
{
        cout<<"enter choice"<<endl;
        cin>>choice;
        switch(choice)
        {
        case 1:pt=new A;
            pt->One();
           break;
    case 2:pt=new B;
            pt->One();
            break;
        case 3:
            pt=new C;
                pt->One();
                break;
        }
}
        return 0;
}
вот так работает. не забываем делать тело конструкторам. ну и вызов функции One() тоже)
rangerx
1932 / 1541 / 141
Регистрация: 31.05.2009
Сообщений: 2,911
12.10.2011, 23:52     Виртуальные методы #3
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
//...
switch(choice)
{
    case 1:
        pt = new A;
        break;
 
    case 2 :
        pt = new B;
        break;
 
    case 3:
        pt = new C;
        break;
}
 
pt->One();
delete pt;
//...
Ответ Создать тему
Опции темы

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