Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
struct base
{
int a;
};
struct derived
{
struct base;
int b;
};
int main()
{
struct derived x;
x.a = 42;
struct base* y = &x;
printf("%d", y->a);
}struct base;x.a = 42;поскольку Си++ совместим с Си, примеры использованные в Си могут применены в обоих языках.Нет, не могут, если только под «применить» не подразумевалось «скомпилировать в буквальном виде». Нельзя просто взять и перенести объявление полей класса в cpp файл, потому что плюсам нужно знать реальный размер класса для его аллокации, а для этого они должны быть в заголовочном файле. Чтобы скрыть поля в C++ схожим образом нужно использовать технику PIMPL.
Инкапсуляция в Си++ и Си