Привет, я пытаюсь найти указатели на функции и как их передавать/объявлять, но у меня есть небольшая проблема с передачей указателя в моем конструкторе класса Button и настройке его члена указатель функции тоже переданный указатель.Функция Задачи указателя: прохождение и объявление
- Когда я пишу Button (Func1) Button1, он говорит, что ожидается ';'
- когда я пишу Button (Func1); он не говорит о конструкторе по умолчанию для кнопки
- когда я пишу кнопку (& Func1); он говорит, что Func1 требует инициализатора
- когда я пишу Button (& Func1()) Button1; он говорит, что выражение должно быть значением lvalue или функцией
Что я делаю неправильно?
void Func1(){std::cout << "This is a function\n";};
void Func2(){std::cout << "This is another function\n";};
class Button
{
private:
void (*Func)(void);
public:
void Activate(){ Func() ;};
Button(void (*Function)(void)){
this->Func = Function;};
};
Button(&Func1) Button1;
Button(&Func2) Button2;
Button1.Activate();
Button2.Activate();
Button Button1 (Func1); также должно быть законным, поскольку имя функции без() на самом деле является начальным адресом этой функции. – Giorgio
Да, это тоже законно. Но & ничего не вызывает. – kravemir
**** facepalm **** Мне нужно больше спать .... Спасибо, хотя! – Griffin