Не работает такая программа:
#include <iostream>
using namespace std;
class A;
typedef void (A::*func)(void);
class A{
public:
func p;
void a(void){cout<<"a"<<endl;}
void b(void){cout<<"b"<<endl;}
};
int main(void){
A a;
a.p=&A::b;
(a.*p)();
return 0;
}
При компиляции компилятор ругается на строчку (a.*p)();:
test19.cpp: In function `int main()':
test19.cpp:25: error: `p' undeclared (first use this function)
test19.cpp:25: error: (Each undeclared identifier is reported only once for each function it appears in.)
Проверял на g++ 3.3.2 и 3.4.2.
В чем дело?
Заранее благодарен.

Ответ на:
комментарий
от jek_

Ответ на:
комментарий
от Evgeny_I

Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
Похожие темы
- Форум _GNU_SOURCE по-умолчанию отключен? (2008)
- Форум 'this' in lambda and in class method is not the same when using vector of std::thread (2021)
- Форум тип bool в C (2003)
- Форум не компилируется oxine (2005)
- Форум Хочу заюзать функцию cpufreq_get но компилятор ругаеться - какой ключ мне указать ? (2005)
- Форум Шаблоны в С++ (2010)
- Форум Не разберусь что за ошибка. (2015)
- Форум как собрать? (2005)
- Форум Кто поставил d4x 5.0_rc4? (2004)
- Форум C++ typedef variadic template (2014)