HTTPS (HTTP по SSL) отправляет все содержание HTTP по туннелю SSL, таким образом, содержание HTTP и заголовки шифруются также.
Самое близкое, что вы можете найти, - это довольно распространенная идиома:
typedef struct
{
// base members
} Base;
typedef struct
{
Base base;
// derived members
} Derived;
Поскольку Derived
начинается с копии Base
, вы можете сделать следующее:
Base *b = (Base *)d;
Где d
- это экземпляр Derived
. Так что они вроде полиморфны. Но наличие виртуальных методов - это еще одна проблема - для этого вам понадобится эквивалент указателя vtable в Base
, содержащий указатели на функции, которые принимают Base
в качестве своего первого аргумент (который вы можете назвать this
).
В этом случае вы также можете использовать C ++!
В C, в отличие от C ++, нет явной концепции наследования. Однако вы можете повторно использовать структуру в другой структуре:
typedef struct {
char name[NAMESIZE];
char sex;
} Person;
typedef struct {
Person person;
char job[JOBSIZE];
} Employee;
typedef struct {
Person person;
char booktitle[TITLESIZE];
} LiteraryCharacter;
Вы можете смоделировать это, но вы не можете на самом деле наследовать.
Вы можете сделать вышеупомянутое
typedef struct
{
// base members
} Base;
typedef struct
{
Base base;
// derived members
} Derived;
Но если вы хотите избежать преобразования указателя, вы можете использовать указатели на объединение
из Base
и Получено
.
Нет, не можете. C не поддерживает концепцию наследования.
Нет, вы не можете. imo лучший подход к ООП в C - это использование ADT .
C не является объектно-ориентированным языком и, следовательно, не имеет наследования.