Как NetSocket Годо создает экземпляр? - PullRequest
0 голосов
/ 19 января 2019

Я читаю исходный код 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; 1012 *

1 Ответ

0 голосов
/ 19 января 2019

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...