Как NetSocket Годо создает экземпляр?

Я читаю исходный код godot и не могу понять, как класс NetSocket создает свой экземпляр.

В net_socket.cpp определяется create(), но я не вижу, как это работает.

#include "net_socket.h"

NetSocket *(*NetSocket::_create)() = NULL;

NetSocket *NetSocket::create() {

    if (_create)
        return _create();

    ERR_PRINT("Unable to create network socket, platform not supported");
    return NULL;
}

Особенно то, что _create? И что NetSocket *(*NetSocket::_create)() = NULL; делать на самом деле?

1 ответ

Решение

Вы смотрите не на тот файл. Тот просто делегирует какой-либо платформо-зависимой реализации, которая была связана / инстанцирована, используя указатель на функцию _create,

Это устанавливается, например, в POSIX impl.

Просто найдите кодовую базу на наличие экземпляров _create и вы увидите, как это работает.

Другие вопросы по тегам