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

Указатели на функции-члены - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Определите, во скольких точках пересекаются окружности. http://www.cyberforum.ru/cpp-beginners/thread205252.html
Помогите пожалуйста решить. Ничего не понимаю, а скоро экзамен(((( Буду очень благодарна... Заданы две окружности: с центром в точке О(x0, y0) и радиусом R0 и с центром в точке О(x1, y1) и радиусом R1. Определите, во скольких точках пересекаются окружности.
C++ Напечатать все слова из текста, отличные от слова hello. Добрый день товарищи!!!Выручайте!)Зачет по программированию завтра сдавать,а я не знаю как последнюю лабораторку сделать. Задание такое: Дан текст, сосоящий не менее чем из 5 слов. Напечатать все слова из текста, отличные от слова hello. http://www.cyberforum.ru/cpp-beginners/thread205233.html
C++ из С# в С++
как код, написанный в С# переделать в С++? List <string> strMass = new List<string>(); string mass1; string massiv;
Калькулятор на С++ C++
калькулятор в принципе готов, надо только сделать запрет деления на 0, помогите кто чем может #include<stdio.h> #include<conio.h> void main (void){ char znak,r; int a,b,c,d,e; do { printf("vvedite 1-i argument\n");
C++ однонаправленный список http://www.cyberforum.ru/cpp-beginners/thread205202.html
Нужно найти ошибку.... помогите пожалуйста... Задание: дан линейный однонаправленный список, удалить из него все записи содержащие слово шунгит... так же есть ещё класс TMyClass(запись v) void TList::ud() {TElem *l,*r; l=first; while(l->next!=NULL) { if(strcmp(l->next->a.v,"hungit")==0) { l=l->next;
C++ Написать функцию нахождения в массиве целых чисел наименьшего по абсолютной величине числа. Написать функцию нахождения в массиве целых чисел наименьшего по абсолютной величине числа. подробнее

Показать сообщение отдельно
isaak
101 / 38 / 9
Регистрация: 17.10.2010
Сообщений: 634
07.12.2010, 12:37     Указатели на функции-члены
Всем доброго время суток дана программа: указатели на функции-члены, вот код программы:
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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
#include <iostream>
using namespace std;
class Mammal
{
public:
    Mammal():itsAge(1){}
    virtual ~Mammal(){}
    virtual void Speak() const = 0;
    virtual void Move() const = 0;
protected:
    int itsAge;
};
class Dog: public Mammal
{
public:
    void Speak() const {cout << "Woof!\n";}
    void Move() const {cout << "Walking to heel...\n";}
};
class Cat: public Mammal
{
public:
    void Speak() const{cout << "meow!\n";}
    void Move() const {cout << "slinking...\n";}
};
class Horse:  public Mammal
{
public:
    void Speak() const {cout << "Winnie!\n";}
    void Move() const {cout << "Galloping...\n";}
};
int main()
{
    void (Mammal::*pFunc)() const = 0;
    Mammal* ptr = 0;
    int Animal;
    int Method;
    bool fQuit = false;
    while (fQuit == false)
    {
        cout << "(0)Quit (1)dog (2)cat (3)horse: ";
        cin >> Animal;
        switch (Animal)
        {
        case 1: ptr = new Dog; break;
        case 2: ptr = new Cat; break;
        case 3: ptr = new Horse; break;
        default: fQuit = true; break;
        }
        if (fQuit == false)
        {
            cout << "(1)Speak (2)Move: ";
            cin >> Method;
            switch (Method)
            {
            case 1: pFunc = Mammal::Speak; break;
            default: pFunc = Mammal::Move; break;
            }
            (ptr -> *pFunc)();
            delete ptr;
        }
    }
    return 0;
}
При компиляции выдает ошибки:
Error 1 error C3867: 'Mammal::Speak': function call missing argument list; use '&Mammal::Speak' to create a pointer to member c:\users\администратор\documents\visual studio 2008\projects\c++\console\p982\p982\p982.cpp 55 p982
Error 2 error C3867: 'Mammal::Move': function call missing argument list; use '&Mammal::Move' to create a pointer to member c:\users\администратор\documents\visual studio 2008\projects\c++\console\p982\p982\p982.cpp 56 p982
Error 3 error C2059: syntax error : '*' c:\users\администратор\documents\visual studio 2008\projects\c++\console\p982\p982\p982.cpp 58 p982
Error 4 error C2039: 'ptr' : is not a member of 'Mammal' c:\users\администратор\documents\visual studio 2008\projects\c++\console\p982\p982\p982.cpp 59 p982
Error 5 error C2541: 'delete' : cannot delete objects that are not pointers c:\users\администратор\documents\visual studio 2008\projects\c++\console\p982\p982\p982.cpp 59 p982

Эту тему еще только начали проходить, поэтому сижу, туплю, подскажите пожалуйста в чем ошибки.
Заранее огромное спасибо.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 05:21. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru