class Base
{
public:
virtual unsigned int ClientExecute(LPVOID client_socket);
static unsigned int CallClientExecute(Base* pBase, LPVOID client_socket)
{
return pBase->ClientExecute(client_socket);
}
};
class Child :public Base
{
public:
unsigned int ClientExecute(LPVOID client_socket);
};
_beginthreadex и члены класса
Цитата:
unsigned int __stdcall ClientExecute(LPVOID client_socket);
, то выскакивает ошибка (оно и понятно, неявно указатель передается).
Если объявлять его статическим, то все нормально, но мне надо, чтобы он был еще и виртуальным (класс-то хочу сделать базовый). Как быть?
Цитата:
Originally posted by teran
Подскажите как решить такую проблему - есть базовый класс (TCP сервер), при подключении клиента он при помощи _beginthreadex создает новый поток, в котором запускает метод ClientExecute(). Если ClientExecute объявлять так -
, то выскакивает ошибка (оно и понятно, неявно указатель передается).
Если объявлять его статическим, то все нормально, но мне надо, чтобы он был еще и виртуальным (класс-то хочу сделать базовый). Как быть?
Подскажите как решить такую проблему - есть базовый класс (TCP сервер), при подключении клиента он при помощи _beginthreadex создает новый поток, в котором запускает метод ClientExecute(). Если ClientExecute объявлять так -
, то выскакивает ошибка (оно и понятно, неявно указатель передается).
Если объявлять его статическим, то все нормально, но мне надо, чтобы он был еще и виртуальным (класс-то хочу сделать базовый). Как быть?
Сделай статический метод, в который передавай указатель на объект (this) и в котором вызыывается виртуальный метод:
Код:
Спасибо, будем реализовывать :-).