В настоящее время я читаю код и натыкаюсь на несколько строк, которые я не понимаю.
Первый
void Foo()
{
(((Type*)parent)->*m_function)();
}
Насколько я могу сказать, они отбрасывают родительский объект Type и затем вызывают функцию разыменования? Я не уверен, что раньше видел → * m_function.
Также я не вижу, где m_function объявляется, возможно, здесь? Который содержит больше синтаксиса, который я не понимаю. Это объявление функции, которая возвращает void и принимает параметр функции? Но где имя функции?
class Foo()
{
void (Type::*m_function)();
};
Он вызывает функцию-член, используя указатель на эту функцию: C++ Указатель указателя на функцию- член
Да, void (Type::*m_function)();
объявляет член функции m_function
типа "член-функция типа, принимающего 0 аргументов и возвращающего void"