/* struct Cls { Cls(char c, double d, int i); private: char c; double d; int i; }; Как видно, все поля этого класса закрытые, ваша задача реализовать несколько функций, которые дают полный доступ к этим полям (см. шаблон кода), несмотря на то, что они закрытые. */ struct FakeCls { FakeCls(char c, double d, int i) { this->c = c; this->d = d; this->i = i; } public: char c; double d; int i; }; // Эта функция должна предоставить доступ к полю c объекта cls. // Обратите внимание, что возвращается ссылка на char, т. е. // доступ предоставляется на чтение и запись. char &get_c(Cls &cls) { FakeCls* fakeCls = reinterpret_cast(&cls); return fakeCls->c; } // Эта функция должна предоставить доступ к полю d объекта cls. // Обратите внимание, что возвращается ссылка на double, т. е. // доступ предоставляется на чтение и запись. double &get_d(Cls &cls) { FakeCls* fakeCls = reinterpret_cast(&cls); return fakeCls->d; } // Эта функция должна предоставить доступ к полю i объекта cls. // Обратите внимание, что возвращается ссылка на int, т. е. // доступ предоставляется на чтение и запись. int &get_i(Cls &cls) { FakeCls* fakeCls = reinterpret_cast(&cls); return fakeCls->i; }