parsed_date;
struct parsed_time;
struct parsed_message;
...
tcpclient.cpp
#include "tcpclient.h"
struct parsed_message
{
struct parsed_date date1;
struct parsed_date date2;
struct parsed_time time;
std::string msg_text;
};
struct parsed_time
{
char hour;
char min;
char sec;
};
struct parsed_date
{
char day;
char month;
unsigned short year;
};
На C вроде же typedef struct?
typedef же просто alias создает для типа если с ним инициализировать структуру, то нельзя будет использовать указатели в структуре на саму себя не то, чтобы мне это здесь надо было
Госпаде, не надо так делать. Это абсолютная бессмыслица
а как же инкапсуляция)
Если это действительно внутрянка, то определяйте сразу в сурсах
В .c файлах, если понятней
Такой forward declaration позволяет только обьявлять указатели и ссылки. Для объявления полей, нужно знать размер типа, а для этого нужно полное определение.
>std::string А у вас точно Си 😆
используется библиотека сишная для клиент/серверного приложения а так плюсы используются
Тут всё правильно, не может компилятор на что-то жаловаться
Ну только нет include <string>
parsed_time используется до определения же
Но к появлению структур в заголовках - это не относится автор не указал никаких ошибок поэтому непонятно на что
есть в хеадер файле
попробовал счас так же сделать - все скомпилилось загадка возможно была проблема с неправильной последовательностью объявления структур (две из них используются в третьей)
попробуй скомпилировать код который ты вчера прислал
Возможно, ты не знаешь язык С/С++
Ты не можешь включить неопределённую структуру или класс состав другой структуры или класса
Но вчера ты спрашивал про объявление структур точка с объявлениями у тебя было всё хорошо
struct passed_message должна была в быть описана ниже других структур)
в tcpclient.cpp структура struct_parsed_message должна быть объявлена после parsed_time и parsed_date
Обсуждают сегодня