1 / 1 / 1
Регистрация: 01.07.2013
Сообщений: 127
1

Указатель на функцыю внутри класса

12.08.2013, 18:46. Показов 517. Ответов 3
Метки нет (Все метки)

Доброго времени суток! Помогите пожалуйста понять как можно вызвать функцию член класса через указатель. Интересны варианты для статической так и не статической функции
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 <fstream> // для потоковых файловых функций
#include <typeinfo> // для typeid()
using namespace std;
#include <process.h> // для exit()
#include <iostream>
#include <string>
#include <algorithm>
#include <vector>
 
class person
{
private:
    static int num;
public:
    person(){}
    static void shownumAnd(char * name)
    {
        cout<<endl<<num<<' '<<name;
    }
 
};
int person::num=6;
 
 
void sortV(float*, float*)
{
}
void main()
{
   setlocale( LC_ALL,"Russian" );
   person sad;
   void (* ptr)(char *) = &person::shownumAnd;
 
   person::ptr("Дмитрий");
 
 
 
   cout<<endl;
   system("pause");
}
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
12.08.2013, 18:46
Ответы с готовыми решениями:

Не создается указатель на класс внутри класса
Всем привет! У меня возникла очень интересная ситуация... У меня есть набор классов. Часть...

Функция указатель на класс, определенный внутри шаблонного класса
Доброго времени суток! Помогите пожалуйста разобрать со следующим кодом: template &lt;class T&gt;...

Как связать сигнал одного класса со слотом другого класса, содержащего указатель на объект этого класса?
Подскажите, пожалуйста, как связать сигнал одного класса со слотом другого класса, содержащего...

Есть метод класса внутри , есть проверка. Если условие сходится то метод должен выдать указатель, иначе булевую переменную
Есть метод класса внутри которого, посередине, есть проверка. Если условие сходится то метод должен...

3
Каратель
Эксперт С++
6605 / 4024 / 401
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
12.08.2013, 18:58 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
#include <iostream>
 
class Foo
{
public:
    void bar() const
    {
        std::cout << "bar" << std::endl;
    }
 
    static void spam()
    {
        std::cout << "spam" << std::endl;
    }
};
 
int main()
{
    void (*spam_ptr)() = Foo::spam;
    spam_ptr();
 
    void (Foo::*bar_ptr) () const = &Foo::bar;
    Foo f;
    (f.*bar_ptr)();
}
1
56 / 52 / 21
Регистрация: 01.01.2012
Сообщений: 347
12.08.2013, 18:59 3
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
class person
{
private:
    static int num;
public:
    person(){}
     void f1(char * name)
    {
        cout<<endl<<num<<' '<<name;
    }
    static  void f2(char * name)
    {
        cout<<endl<<num<<' '<<name;
    }
 
};
int person::num=6;
 
 
void sortV(float*, float*)
{
}
void main()
{
   setlocale( LC_ALL,"Russian" );
   person sad;
//Для не статической
void (person::*ptr)(char *) = person::f1;
(sad.*ptr)("hello");
 
//Для статической
void (*ptr1)(char *) = person::f2;
ptr1("sd");
 
   cout<<endl;
   system("pause");
}
1
1 / 1 / 1
Регистрация: 01.07.2013
Сообщений: 127
26.08.2013, 19:08  [ТС] 4
Jupiter, А почему для инициализации статического указателя void (*spam_ptr)() = Foo::spam; можно не делать операцию взятия адреса &Foo::spam; ?
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
26.08.2013, 19:08
Помогаю со студенческими работами здесь

Функция, получающая указатель на обычную функцию, получает указатель на метод класса
Здравтсвуйте. Имеется вопрос по указателям на методы класса. Допустим, есть функция( f ), которая...

Указатель на указатель внутри структуры
Приветствую. Есть 2 структуры: enum category { Technical, History, Fiction }; struct BOOK {...

Указатель на объект базового класса и адрес объекта производного класса
Пример кода: class Class1 { public: Class1(int x) { j = new int; *j = x; }...

Возможно ли указатель производного класса инициализировать объектом базового класса?
имеется связка наследуемых классов A-&gt;B а от B наследуются одновременно еще два класса B-&gt;C и B-&gt;D...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru