Как 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
и вы увидите, как это работает.