C ++ Advanced Puzzle

Я столкнулся со следующим вопросом, и у меня нет хорошей идеи.
Может быть, кто-то может мне помочь?

class Foo
{
// [Your code goes here]
// Rec1: Don’t write function call operator()
// Rec2: Don’t use macros.
};
int main()
{
Foo foo;
foo();          // This line prints “Hello World!”
}

-4

Решение

#include <iostream>
class Foo
{
public:
using fncPntr = void(*)(void);
//Implicit conversion to a function pointer
operator fncPntr()
{
return &Print;
}
void static Print()
{
std::cout << "Hello World!";
}
};
int main()
{
Foo foo;
foo();
}
2

Другие решения

class Foo{
// [Your code goes here]
};
void foo()
{
std::cout << "hello";
}
class Bar{
// Rec1: Don’t write function call operator()
// Rec2: Don’t use macros.
};
-3

По вопросам рекламы [email protected]