Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.12.2015, 20:02   #1
NEoMASTERR
Форумчанин
 
Аватар для NEoMASTERR
 
Регистрация: 22.12.2010
Сообщений: 175
По умолчанию Линукс, наследование класса

Здравствуйте! Я новичок в с++ а сегодня взялся еще и за перенос проекта под линукс (в котором я тоже почти ноль), суть проблемы в следующем, серверное приложение в котором есть массив наследник класса thread (под виндовс) но переношу под линукс с классом pthread_t (на thread ругается) и компилятор ругается на какой то отсутствующий класснейм, ругается на

class TWSAServer : public pthread_t
{ < - здесь ругательство

Цитата:
main.cpp:23:1: error: expected class-name before '{' token
{
^
make: *** [hello] Error 1
Код:
#include <iostream>
#include <string>
#include <stdio.h>
#include <vector>

#define LINUX
using namespace std;
#ifdef LINUX
	#include <pthread.h>
#else
	#include <thread>
#endif
#include "commands.h"
#include "constants.h"

#ifdef LINUX
	class TWSAServer : public pthread_t
#else 
	class TWSAServer : public thread
#endif
{
public:
private:
protected:
};
Помогите пожалуйста
Здравствуйте

Последний раз редактировалось NEoMASTERR; 04.12.2015 в 20:15.
NEoMASTERR вне форума Ответить с цитированием
Старый 04.12.2015, 20:45   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
public pthread_t
А где #include <pthread.h> ?
И кстати, та ошибка единственная на что компиль ругнулся?
Цитата:
на thread ругается
http://www.cplusplus.com/reference/thread/
Стандарт С-11. У тебя включена поддержка его?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 04.12.2015, 20:54   #3
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,707
По умолчанию

А когда pthread_t стал классом?
p51x вне форума Ответить с цитированием
Старый 04.12.2015, 21:11   #4
NEoMASTERR
Форумчанин
 
Аватар для NEoMASTERR
 
Регистрация: 22.12.2010
Сообщений: 175
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
А где #include <pthread.h> ?
И кстати, та ошибка единственная на что компиль ругнулся?

http://www.cplusplus.com/reference/thread/
Стандарт С-11. У тебя включена поддержка его?
Инклуд стоит после #define LINUX, да ошибка единственная
на счёт С-11 не знаю) видимо нет раз в консоли пишется на счёт "-std=c++11" при использовании обычного thread, но написано поддержка экспериментальная, не хочу ошибок

Цитата:
Сообщение от p51x Посмотреть сообщение
А когда pthread_t стал классом?
а он не класс? А какой тогда? в примерах было pthread_t blabla; Подскажите от чего наследоваться
Здравствуйте

Последний раз редактировалось Stilet; 05.12.2015 в 09:38.
NEoMASTERR вне форума Ответить с цитированием
Старый 04.12.2015, 21:28   #5
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Цитата:
на thread ругается
Компилятор не древней версии? Флаг -std=c++11 добавлен?

Цитата:
а он не класс? А какой тогда? в примерах было pthread_t blabla; Подскажите от чего наследоваться
С структура это.
Зачем вам наследоваться от него? Для работы с ним используются функции типа pthread_create

Цитата:
перенос проекта
Как вариант можно что-то кроссплатформенное типа Qt взять.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.

Последний раз редактировалось Alex11223; 04.12.2015 в 21:44.
Alex11223 вне форума Ответить с цитированием
Старый 04.12.2015, 22:21   #6
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,707
По умолчанию

Цитата:
Компилятор не древней версии? Флаг -std=c++11 добавлен?
Он же написал, что он пароноик:
Цитата:
видимо нет раз в консоли пишется на счёт "-std=c++11" при использовании обычного thread, но написано поддержка экспериментальная, не хочу ошибок
p51x вне форума Ответить с цитированием
Старый 04.12.2015, 22:37   #7
NEoMASTERR
Форумчанин
 
Аватар для NEoMASTERR
 
Регистрация: 22.12.2010
Сообщений: 175
По умолчанию

Кстати, почему не получается сделать потоковую функцию внутри класса?

Код:
class TWSAServer
{
	public: 
		int sock;
		struct sockaddr_in addr;

		void listener()
		{

		}

		#ifdef LINUX
			
		#else 
			std::thread thr(listener);
		#endif
"TWSAServer::listener" не является именем типа
Здравствуйте
NEoMASTERR вне форума Ответить с цитированием
Старый 04.12.2015, 22:44   #8
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Потому что надо указать где именно ее брать, там вроде есть другой вариант конструктора для этого. Или с помощью лямбды можно немного проще/короче (вызвать ее в лямбде).
https://www.google.com/search?q=std+...ember+function
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 05.12.2015, 09:38   #9
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Инклуд стоит после #define LINUX
Ой! Прошу прощения. Недосмотрел
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 06.12.2015, 20:23   #10
NEoMASTERR
Форумчанин
 
Аватар для NEoMASTERR
 
Регистрация: 22.12.2010
Сообщений: 175
По умолчанию

в общем ушёл я от наследования класса потока, сделал через известное место но работает, очень непонятно всё это для меня на данном этапе
Здравствуйте
NEoMASTERR вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
сделать,чтобы запрашивалось сколько вводить строк. наследование класса Евгения Е Общие вопросы C/C++ 7 15.12.2014 13:58
Наследование класса, ошибка при inherited. alextrof94 Общие вопросы Delphi 16 19.04.2013 15:36
Наследование от класса TCustomControl Kotlyar562 Помощь студентам 1 19.03.2011 18:33
Наследование виртуального класса Юра_YUYU Общие вопросы C/C++ 2 30.01.2010 22:39
Создание своего класса, наследование от предка Krechet Общие вопросы Delphi 16 02.05.2009 16:15